• Stars
    star
    161
  • Rank 233,395 (Top 5 %)
  • Language
    Clojure
  • License
    Eclipse Public Li...
  • Created over 5 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Clojure to Rust transpiler

Rustly

A Clojure to Rust transpiler.

orange leaves

Usage

lein run --in <src.clj> --out <out.rs>

Example

Run the example with ./hello_world.sh

This shell script invokes the transpiler with input file example/hello_world/hello-world.clj, produces output file example/hello_world/src/main.rs, invokes cargo run, producing the "Ferris says hello" message:

----------------------------
| Hello world              |
----------------------------
          \
           \
              _~^~^~_
          \) /  o o  \ (/
            '_   -   _'
            / '-----' \

Status

This is a science project. Rustly is alpha and subject to change. Feedback on design and implementation is welcome. Only a subset of Clojure is implemented. The goal is to cover all the good parts.

No packaged builds are provided at this time. To use this transpiler you must download the source code.

See Kalai for a more comprehensive Clojure transpiler.

Rationale

A concise Lisp syntax, backed by Clojure tooling that targets Rust might be a good thing.

Developing

Issues, pull requests, and suggestions are very welcome.

License

Copyright © 2019 Timothy Pratley

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0.

This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at https://www.gnu.org/software/classpath/license.html.

More Repositories

1

reanimated

An animation library for Reagent (ClojureScript)
Clojure
250
star
2

enterprise-clojure-training

A Clojure training course for Developers and Senior Developers
JavaScript
75
star
3

tetris

Clojure
55
star
4

snakelake

Multiplayer snake game
Clojure
32
star
5

justice

A Clojure/Script library providing a concise rule definition and query syntax for Datalog
Clojure
26
star
6

power-turtle

Interactive turtle power in your browser
Clojure
24
star
7

happygapi

A Clojure library with source generated functions for using Google APIs.
Clojure
23
star
8

tictactoe

Tic Tac Toe Game
Clojure
21
star
9

patchin

Creates and applies patches to datastructures
Clojure
18
star
10

leaderboardx

A tool for building graphs quickly
Clojure
17
star
11

clojure-ebnf-grammar

An Instaparse EBNF grammar for the Clojure language
Clojure
14
star
12

stocksim

Stock simulation in Clojure
Clojure
14
star
13

happyapi

Middleware oriented oauth2 client for webservices
Clojure
14
star
14

terisk

Annotate Clojure functions with examples that show in docstrings and tests
Clojure
11
star
15

cleventing

Clojure Event Sourcing
Clojure
10
star
16

asciidoctor-revealjs-klipse

Slides with interactive code snippets
JavaScript
10
star
17

claykind

HTML
9
star
18

cban

Clojure by anyother name
Clojure
8
star
19

munkres

Wrapping a solution for the Assignment Problem, Hungarian Method (Munkres) O(N^3)
Clojure
7
star
20

vone

VersionOne report gathering
Clojure
6
star
21

whip

Whip project management tool
Clojure
5
star
22

parsnip

Test your files conform to parinfer mode
Clojure
5
star
23

strive

Clojure
4
star
24

voterx

Clojure
4
star
25

othello

Clojure
4
star
26

turtles

Clojure
4
star
27

napkindo

The Napkin to share your ideas on
Clojure
4
star
28

unbound

A propositional logic library (Clojure/Script).
Clojure
4
star
29

tablescrape

Example scraping HTML table data and analyzing PE ratio performance with it
Clojure
4
star
30

happygapi2

A Clojure library for calling Google APIs; sheets, drive, bigquery, and so on.
Clojure
4
star
31

config

Configurations I don't want to lose
Emacs Lisp
3
star
32

interact

Pendulum Mayhem
Clojure
3
star
33

timetraveltests

performance testing immutable maps
C#
3
star
34

happyapi.google

A Clojure library for accessing Google APIs (sheets, youtube, bigquery etc)
Clojure
2
star
35

bidi-resources

Minimal example
Clojure
2
star
36

spicy-breakfast

Example shopping cart ClojureScript Reagent app
Clojure
2
star
37

Strive.NET

C#
2
star
38

icopop

Scaling icosahedron triangles independently
Clojure
2
star
39

MyAgent

An example gr1d agent
C#
2
star
40

clojo

Clojure
2
star
41

hummilang

Lisp in small parts in Clojure/Script
Clojure
2
star
42

PointsOnSphere

Distributing points on a sphere and creating a graph representation
C#
2
star
43

fivepirates

Python
1
star
44

sociogram

tool for creating sociograms
C#
1
star
45

kudosweave

Kudos Weave is a network of trust proof of concept
Clojure
1
star
46

routegen

Generate Compojure routes for functions in a namespace.
Clojure
1
star
47

crows

JavaScript
1
star
48

checkers

Clojure
1
star
49

pairwell

JavaScript
1
star
50

locstream

JavaScript
1
star
51

sertive

Recommendations for using assertions in Clojure
Clojure
1
star
52

refreshive

Test-refresh from inside a Cursive REPL
Clojure
1
star
53

tjpext

Clojure extensions by Timothy Pratley
Clojure
1
star
54

pidgeonular

a state server
Clojure
1
star
55

google-chart-example

Clojure
1
star
56

finstrat

Clojure
1
star
57

mailenator

Send email with great ease and comfort!
Clojure
1
star
58

shortest-path-visual

An animated shortest path solver
HTML
1
star
59

euclid

Points! Lines! Circles! Geometry!
Clojure
1
star
60

fatwheel

Run Clojure tools when files change. Fatwheel reloads code, runs tests, linters, and custom tasks when you save a file.
JavaScript
1
star
61

NeoAvalon

C#
1
star
62

oneup

Clojure
1
star
63

pattern-query-view

Clojure
1
star