rune-rs
rune
Rust

An embeddable dynamic programming language for Rust.

Last updated Jul 7, 2026
2.3k
Stars
114
Forks
72
Issues
+11
Stars/day
Attention Score
86
Language breakdown
No language data available.
โ–ธ Files click to expand
README

rune logo
Visit the site ๐ŸŒRead the book ๐Ÿ“–

rune

github crates.io docs.rs build status chat on discord

The Rune Language, an embeddable dynamic programming language for Rust.


Contributing

If you want to help out, please have a look at [Open Issues].


Highlights of Rune

  • Run simple [Scripts ๐Ÿ“–][support-scripts].
  • Runs a compact representation of the language on top of an efficient
[stack-based virtual machine][support-virtual-machine].
  • Clean [Rust integration ๐Ÿ’ป][support-rust-integration].
  • [Multithreaded ๐Ÿ“–][support-multithreading] execution.
  • [Hot reloading ๐Ÿ“–][support-hot-reloading].
  • Memory safe through [reference counting ๐Ÿ“–][support-reference-counted].
  • [Awesome macros ๐Ÿ“–][support-macros] and [Template literals ๐Ÿ“–][support-templates].
  • [Try operators ๐Ÿ“–][support-try] and [Pattern matching ๐Ÿ“–][support-patterns].
  • [Structs and enums ๐Ÿ“–][support-structs] with associated data and
functions.
  • Dynamic containers like [vectors ๐Ÿ“–][support-dynamic-vectors], [objects
๐Ÿ“–][support-anon-objects], and [tuples ๐Ÿ“–][support-anon-tuples] all with out-of-the-box [serde support ๐Ÿ’ป][support-serde].
  • First-class [async support ๐Ÿ“–][support-async] with [Generators ๐Ÿ“–][support-generators].
  • Dynamic [instance functions ๐Ÿ“–][support-instance-functions].
  • [Stack isolation ๐Ÿ“–][support-stack-isolation] between function calls.

Rune scripts

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.


Running scripts from Rust

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.

[termcolor]: https://docs.rs/termcolor

use rune::{Context, Diagnostics, Source, Sources, Vm};
use rune::termcolor::{ColorChoice, StandardStream};
use rune::sync::Arc;

let context = Context::withdefaultmodules()?;

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);

[in the examples folder]: https://github.com/rune-rs/rune/tree/main/examples/examples [Open Issues]: https://github.com/rune-rs/rune/issues [support-anon-objects]: https://rune-rs.github.io/book/objects.html [support-anon-tuples]: https://rune-rs.github.io/book/tuples.html [support-async]: https://rune-rs.github.io/book/async.html [support-dynamic-vectors]: https://rune-rs.github.io/book/vectors.html [support-generators]: https://rune-rs.github.io/book/generators.html [support-hot-reloading]: https://rune-rs.github.io/book/hot_reloading.html [support-instance-functions]: https://rune-rs.github.io/book/instance_functions.html [support-macros]: https://rune-rs.github.io/book/macros.html [support-multithreading]: https://rune-rs.github.io/book/multithreading.html [support-patterns]: https://rune-rs.github.io/book/pattern_matching.html [support-reference-counted]: https://rune-rs.github.io/book/variables.html [support-rust-integration]: https://github.com/rune-rs/rune/tree/main/crates/rune-modules [support-scripts]: https://rune-rs.github.io/book/scripts.html [support-serde]: https://github.com/rune-rs/rune/blob/main/crates/rune-modules/src/json.rs [support-stack-isolation]: https://rune-rs.github.io/book/call_frames.html [support-structs]: https://rune-rs.github.io/book/structs.html [support-templates]: https://rune-rs.github.io/book/template_literals.html [support-try]: https://rune-rs.github.io/book/try_operator.html [support-virtual-machine]: https://rune-rs.github.io/book/the_stack.html

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท rune-rs/rune ยท Updated daily from GitHub