llvm icon indicating copy to clipboard operation
llvm copied to clipboard

Safe LLVM bindings for Rust

LLVM Rust bindings

crates-badge travis-badge appveyor-badge coveralls-badge license-badge gitter-badge

This library is intended to be a safe wrapper around the llvm-sys bindings. It is currently very incomplete however it is possible to use this and llvm-sys at the same time, most structures are able to be converted into LLVM*Ref

If you find that you need a functionality thats only present in llvm-sys please file an issue.

A simple JIT example is available here.

Safety

While it is better to use this library over llvm-sys directly, this library is still not completely safe. Some functions still return LLVM*Ref types, which are type aliases for raw pointers. Until I finish converting these raw pointers into safe wrapper types, there is still a possibility for unsafe behavior, although in practice this is rare.