Rustler Precompiled - Use precompiled NIFs from trusted sources in your Elixir code

Rustler Precompiled is a project that enables the usage of precompiled NIFs. Precompiled NIFs are then downloaded from the internet and validated using checksums.

This way we can precompile our Rustler projects in the CI and download them in the user machine securely. This can bring a huge benefit in compilation time to several projects. Since no Rust code is compiled, the only requirement is an internet connection for downloading and compiling your dependencies. And if you’d rather always build from scratch, due to security concerns, you can always bypass RustlerPrecompiled and force a local build.

Please check the announcement post and the documentation for further details.

The GitHub repository is https://github.com/philss/rustler_precompiled, and an example app is available at https://github.com/philss/rustler_precompilation_example.

You can also check the html5ever_elixir package that was published using Rustler Precompiled.

Please let me know if you have any questions about the package, and if you need help setting up and publishing an existing library with Rustler Precompiled.

22 Likes

Hi :wave:

I want to give some updates regarding Rustler Precompiled:

Also the changelog contains more information about the recent releases: Changelog — rustler_precompiled v0.5.1

That is it for now. :slight_smile:
Cheers!

6 Likes

Hello :wave:

There is a new release of RustlerPrecompiled: v0.6.0 was released today with some minor changes that affects the publishing of your packages. We added two new default targets, and we removed NIF 2.14 from the default NIF versions. It’s also possible to configure the supported NIF versions now.

Check the change log for more details: Changelog — rustler_precompiled v0.6.0

There is also a new GitHub Actions that can dramatically reduce the size and simplify your release workflows: philss/rustler-precompiled-action.

Cheers!

8 Likes

Thank you for making this. You made my life so much easier.