7 个版本
181.0.0-alpha.7 | 2024年7月7日 |
---|---|
181.0.0-alpha.5 | 2024年7月6日 |
181.0.0-alpha.4 | 2024年7月5日 |
181.0.0-alpha.2 | 2024年7月4日 |
#79 in FFI
464 每月下载量
330KB
10K SLoC
llvm_quick
基于 llvm-sys 的 Rust 包装器。
示例
let context = Context::create();
let module = context.create_module(c"sum");
let builder = context.create_builder();
let i64_type = context.i64_type();
let function_type = i64_type.fun((i64_type, i64_type, i64_type));
let function = module.add_function(c"sum", function_type);
let bb = context.append_basic_block(function, c"entry");
builder.position_at_end(bb);
let (x, y, z) = function.get_params();
let sum = builder.add(x, y, c"sum.1");
let sum = builder.add(sum, z, c"sum.2");
builder.return_value(sum);
特点
包装器旨在尽可能薄和快,主要是将 C 风格的 API 作为关联方法包装。
当 API 无法安全地使其安全时,尽可能使只读访问安全,并将写函数标记为不安全的。
反馈和建议
如果您在 API 中发现任何潜在的不安全,或有关于抽象的建议,请提交一个 issue。
注意:此库仅仅是 llvm-sys 的包装器,不涉及链接 LLVM。如果您在链接 llvm 时遇到困难,请前往 gitlab llvm-sys 获取帮助。注意:此库仅仅是 llvm-sys 的包装器,不涉及链接 LLVM。如果您在链接时遇到困难,请前往 gitlab llvm-sys 获取帮助。
依赖关系
~280–560KB
~11K SLoC