homepage & docs | introduction & learn | playground | source & issues | discuss & chat
an expressive, dynamically-typed language for the joy of programming
browser-runnable examples here
tools | editors | credits | examples | made with revo
the latest release is hosted at github releases
however, this project is rapidly changing. i recommend you build from source instead
you need zig 0.17.0 to build revo
i also recommend the anyzig version manager
git clone https://github.com/if-not-nil/revo --recursive && cd revo
git submodule update --init --recursive
zig build --fetch
zig build -Doptimize=safe
# =small for a ~1mb executable
# =fast for a ~5%-10% performance gain (harder to report bugs on)
cp ./zig-out/bin/revo ~/.local/bin/revo
revothis project has a flake which exposes revo as a package on default
you can open a shell with revo using nix shell github:if-not-nil/revo?dir=extra/nix
there is also a function that bundles a revo script into a nix package
Note
some features are unavailable on windows. i recommend using WSL with the linux steps
git clone https://github.com/if-not-nil/revo && cd revo
zig build --fetch -Doptimize=fast
mkdir "C:/tools/revo/bin"
copy ./zig-out/bin/revo C:/tools/revo/bin
# now add it to PATH by doing:
# - Win+S -> `env` -> <Enter> -> "Environment Variables" -> "Path" -> "System Variables"
# - add new at "C:\tools\revo\bin" -> click ok -> reopen your terminal
revo-
lspdiagnostics, highlighting, etc. in your editor!
bundled by default with your revo
how to use in your text editor -
tree-sittergives most editors revo syntax highlighting support doomy/tree-sitter-revo on codeberg
-
docsoutput docs in plaintext/html
revo doc <file or directory> revo doc --html <file or directory> -
fmtformat
.rvfilesrevo fmt format every .rv under the pwd revo fmt script.rv dir/ format that in place revo fmt --check . list files whose formatting differs revo fmt --diff . print a diff of the changes revo fmt - < script.rv format stdin to stdout
-
revel by hachem-wtf -- a unix-like kernel
-
hiccup.revo -- an html rendering library\
-
rover -- parser generators\
-
if you want your project in the readme, you can submit it via pr/issues/discussion/email/discord
you can extend or embed revo from (essentially) any language
four bindings for two ABIs, all of them embed revo and load extensions:
revo is licensed as MIT
~ isocline by daanx - MIT
~ lsp-kit by the zigtools team - MIT
~ glob by xcaeser - MIT