6个版本
0.1.5 | 2023年9月12日 |
---|---|
0.1.4 | 2023年9月8日 |
0.1.3 | 2023年7月4日 |
0.1.1 | 2023年5月27日 |
0.1.0 | 2023年4月4日 |
#914 in 编程语言
在 golana-cli 中使用
1.5MB
32K SLoC
此crate是Goscript项目的一部分。请访问 https://goscript.dev 获取更多信息。
它是Goscript项目的所有部分的包装器。它还实现了标准库,标准库部分仍在开发中,只有少数部分已实现。
示例
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
}
特性
该项目旨在嵌入,因此具有许多功能标志以开启/关闭不同部分。
read_fs
: 从本地文件系统读取源代码read_zip
: 从zip文件读取源代码async
: 支持通道和goroutinego_std
: 启用Go标准库btree_map
: 使其使用BTreeMap而不是HashMapcodegen
: 启用代码生成instruction_pos
: 为字节码添加指令位置以进行调试serde_borsh
: 使用Borsh为字节码提供Serde支持wasm
: 启用wasm支持
依赖项
~2–4.5MB
~90K SLoC