rune

所属分类:编程语言基础
开发工具:Rust
文件大小:0KB
下载次数:0
上传日期:2023-06-28 01:27:24
上 传 者sh-1993
说明:  一种用于Rust的可嵌入动态编程语言。
(An embeddable dynamic programming language for Rust.)

文件列表:
.vscode/ (0, 2023-12-23)
.vscode/launch.json (1174, 2023-12-23)
CODE_OF_CONDUCT.md (2355, 2023-12-23)
Cargo.toml (285, 2023-12-23)
LICENSE-APACHE (11358, 2023-12-23)
LICENSE-MIT (1059, 2023-12-23)
Rune.toml (57, 2023-12-23)
assets/ (0, 2023-12-23)
assets/icon.png (2653, 2023-12-23)
assets/icon.xcf (44181, 2023-12-23)
assets/logo.xcf (26305, 2023-12-23)
assets/social.png (22603, 2023-12-23)
assets/tokens.yaml (7050, 2023-12-23)
benches/ (0, 2023-12-23)
benches/Cargo.toml (341, 2023-12-23)
benches/Rune.toml (50, 2023-12-23)
benches/benches/ (0, 2023-12-23)
benches/benches/bench_main.rs (2018, 2023-12-23)
benches/benches/benchmarks/ (0, 2023-12-23)
benches/benches/benchmarks/aoc_2020_11a.rs (8086, 2023-12-23)
benches/benches/benchmarks/aoc_2020_19b.rs (12516, 2023-12-23)
benches/benches/benchmarks/aoc_2020_1a.rs (2356, 2023-12-23)
benches/benches/benchmarks/aoc_2020_1b.rs (1863, 2023-12-23)
benches/benches/benchmarks/brainfuck.rs (5364, 2023-12-23)
benches/benches/benchmarks/data/ (0, 2023-12-23)
benches/benches/benchmarks/data/aoc_2020_1.txt (993, 2023-12-23)
benches/benches/benchmarks/data/aoc_2020_11a.txt (8463, 2023-12-23)
benches/benches/benchmarks/data/aoc_2020_19b.txt (17354, 2023-12-23)
benches/benches/benchmarks/external_functions.rs (759, 2023-12-23)
... ...

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 * 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]. * Memory safe through [reference counting ][support-reference-counted]. * [Awesome macros ][support-macros]. * [Template literals ][support-templates]. * [Try operators ][support-try]. * [Pattern matching ][support-patterns]. * [Structs and enums ][support-structs] with associated data and functions. * Dynamic [vectors ][support-dynamic-vectors], [objects ][support-anon-objects], and [tuples ][support-anon-tuples] with out-of-the-box [serde support ][support-serde]. * First-class [async support ][support-async]. * [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: ```text 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: ```text cargo run --bin rune -- run scripts/hello_world.rn --dump-unit --trace --dump-vm ``` 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 ```rust use rune::{Context, Diagnostics, Source, Sources, Vm}; use rune::termcolor::{ColorChoice, StandardStream}; use std::sync::Arc; let context = Context::with_default_modules()?; let runtime = Arc::new(context.runtime()?); 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(); if !diagnostics.is_empty() { let mut writer = StandardStream::stderr(ColorChoice::Always); diagnostics.emit(&mut writer, &sources)?; } let unit = result?; let mut vm = Vm::new(runtime, Arc::new(unit)); 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-instance-functions]: https://rune-rs.github.io/book/instance_functions.html [support-macros]: https://rune-rs.github.io/book/macros.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-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

近期下载者

相关文件


收藏者