The Rune Language, an embeddable dynamic programming language for Rust.
If you want to help out, please have a look at Open Issues.
You can run Rune programs with the bundled CLI:
cargo run --bin rune -- run scripts/hello_world.rn
If you want to see detailed diagnostics of your program while it's running, you can use:
cargo run --bin rune -- run scripts/hello_world.rn --dump --trace
See --help
for more information.
You can find more examples in the
examples
folder.
The following is a complete example, including rich diagnostics using termcolor
. It can be made much simpler if this is not needed.
use rune::{Context, Diagnostics, Source, Sources, Vm}; use rune::termcolor::{ColorChoice, StandardStream}; use rune::sync::Arc; let context = Context::with_default_modules()?; let mut sources = Sources::new(); sources.insert(Source::memory("pub fn add(a, b) { a + b }")?); let mut diagnostics = Diagnostics::new(); let result = rune::prepare(&mut sources) .with_context(&context) .with_diagnostics(&mut diagnostics) .build_vm(); if !diagnostics.is_empty() { let mut writer = StandardStream::stderr(ColorChoice::Always); diagnostics.emit(&mut writer, &sources)?; } let mut vm = result?; let output = vm.call(["add"], (10i64, 20i64))?; let output: i64 = rune::from_value(output)?; println!("{}", output);
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4