Omniglot is framework that allows Rust programs to safely and efficiently interact with foreign libraries in any language.
This repository contains the core Omniglot crate. But to actually use Omniglot, you use on a library specialized for a particular runtime. Currently supported runtimes include:
- Documentation
- Quick start guide
- Tock Cortex-M support
- Improved
bindgen
integration and calling convention analysis.
Omniglot was published at USENIX OSDI 2025, where it won a best paper award.
USENIX ;login; also published an article motivating and describing the work.
To reproduce the experiments and results from our OSDI'25 paper, we publish our reproduction instructions and code artifacts on Zenodo: https://doi.org/10.5281/zenodo.15602886
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.