1个不稳定版本

0.1.0 2021年6月26日

#740 in 音频

MIT/Apache

7.5MB
189K SLoC

C++ 186K SLoC // 0.1% comments XSL 1K SLoC // 0.7% comments Python 653 SLoC // 0.1% comments JavaScript 320 SLoC // 0.1% comments Bitbake 311 SLoC // 0.8% comments Shell 214 SLoC // 0.2% comments QML 188 SLoC // 0.1% comments Java 111 SLoC // 0.3% comments Rust 82 SLoC // 0.0% comments Prolog 78 SLoC // 0.1% comments SWIG 33 SLoC // 0.4% comments C 11 SLoC

包含(WOFF字体,22KB) verovio/fonts/VerovioText-1.0.woff

Rustovio

CI docs crates.io

Rust对Verovio的绑定。它提供了原始绑定和有限的包装。

限制

目前此库在Windows上无法工作,主要是因为我没有Windows环境来检查如何设置。

要使用此库,您需要有一个可用于动态链接的C++运行时。

包装

let mut tk = VerovioToolkit::new("verovio/data").unwrap();
tk.load_data_from_file(filename);
println!("{}", tk.render_to_svg(1).unwrap());

绑定

let data = fs::read_to_string(filename).expect("Something went wrong reading the file");
let cdata = CString::new(data).unwrap();

let resource_folder = CString::new("verovio/data").unwrap();

let svg_str = unsafe {
    let tk = bindings::vrvToolkit_constructorResourcePath(resource_folder.as_ptr());
    bindings::vrvToolkit_loadData(tk, cdata.as_ptr());
    let svg = bindings::vrvToolkit_renderToSVG(tk, 1, std::ptr::null::<i8>());
    CStr::from_ptr(svg)
};
println!("{}", svg_str.to_str().unwrap());

无运行时依赖