[−][src]Crate rune
An embeddable dynamic programming language for Rust.
Contributing
If you want to help out, there should be a number of optimization tasks available in Future Optimizations. Or have a look at Open Issues.
Create an issue about the optimization you want to work on and communicate that you are working on it.
Features of Rune
- Clean Rust Integration 💻.
- Memory safe through reference counting 📖.
- Template strings 📖.
- Try operators 📖.
- Pattern matching 📖.
- Structs and enums 📖 with associated data and functions.
- Dynamic vectors 📖, objects 📖, and tuples 📖 with built-in serde support 💻.
- First-class async support 📖.
- Generators 📖.
- Dynamic instance functions 📖.
- Stack isolation between function calls.
- Stack-based C FFI, like Lua's (TBD).
Rune Scripts
You can run Rune programs with the bundled CLI:
cargo run -- scripts/hello_world.rn
If you want to see detailed diagnostics of your program while it's running, you can use:
cargo run -- scripts/hello_world.rn --dump-unit --trace --dump-vm
See --help
for more information.
Re-exports
pub use crate::runtime::termcolor; |
Modules
ast | AST for the Rune language. |
Structs
Lexer | Lexer for the rune language. |
Options | Compiler options. |
ParseAll | The result from parsing a string. |
Parser | Parser for the rune language. |
Runtime | A rune runtime, which simplifies embedding and using rune. |
Source | A parsed input coupled with it's source. |
Span | A span corresponding to a range in the source file being parsed. |
Token | A single token used during parsing. |
Warnings | Compilation warnings. |
Enums
CompileError | Error when encoding AST. |
Error | Error capable of collecting all error types emitted by this crate. |
Kind | The kind of the token. |
ParseError | Error when parsing. |
Warning | Compilation warning. |
Traits
Parse | The parse trait, implemented by items that can be parsed. |
Resolve | A type that can be resolved to an internal value based on a source. |
Functions
compile | Helper function to compile the given source. |
parse_all | Parse the given input as the given type that implements Parse. |
Type Definitions
Result | Result alias used by this frontend. |