6 releases
0.1.5 | Sep 12, 2023 |
---|---|
0.1.4 | Sep 8, 2023 |
0.1.3 | Jul 4, 2023 |
0.1.1 | May 27, 2023 |
0.1.0 | Apr 4, 2023 |
#1066 in Programming languages
95 downloads per month
Used in golana-cli
1.5MB
32K
SLoC
This crate is part of the Goscript project. Please refer to https://goscript.dev for more information.
It's a wapper of all the parts of the Goscript project. It also implements the standard library, the standard library part is still under development, only a few parts are implemented.
Example:
use std::path::{Path, PathBuf};
use go_engine::{Config, ErrorList, SourceReader, run};
fn run_file(path: &str, trace: bool) -> Result<(), ErrorList> {
let mut cfg = Config::default();
cfg.trace_parser = trace;
cfg.trace_checker = trace;
let sr = SourceReader::local_fs(PathBuf::from("../std/"), PathBuf::from("./"));
let result = run(cfg, &sr, Path::new(path), None);
if let Err(el) = &result {
el.sort();
eprint!("{}", el);
}
result
}
Feature
The project is entended to be enbedded, so it has a lot of feature flags to turn on/off different parts.
read_fs
: Read source code from local file systemread_zip
: Read source code from zip fileasync
: Channel and goroutine supportgo_std
: Enable the Go standard librarybtree_map
: Make it use BTreeMap instead of HashMapcodegen
: Enable codegeninstruction_pos
: Add instruction position to bytecode for debuggingserde_borsh
: Serde support for bytecode using Borshwasm
: Enable wasm support
Dependencies
~2.1–4.5MB
~95K SLoC