alexslade

alexslade

Hi folks,

On of my team’s projects has a rust dependency, via a library that uses rustler to wrap a rust function. It hasn’t changed in a while, and it’s a pain to have an entire rust runtime dependency for this single lib.

We’re trying to find a way to remove the runtime from our deploy pipeline, and I’m wondering if there is a way to locally compile the dependency ahead of time and just include some kind of version-fixed binary.

Grateful for any suggestions, thanks.

Showing Posts 1 to 10

josevalim

josevalim

Creator of Elixir

We are working on a package for precompiling Rustler. It should be available within the next two weeks or so. :slight_smile:

28
Post #1
dimitarvp

dimitarvp

Awesome news!!! :heart::blue_heart::purple_heart::yellow_heart::green_heart:

OvermindDL1

OvermindDL1

Ooo this sounds interesting! Where is this being worked on?

josevalim

josevalim

Creator of Elixir

There is a proof of concept in the html5ever project that is being ported to a stand-alone library.

OvermindDL1

OvermindDL1

What I would find really fascinating is embedding a wasm engine, like wasmer or so, and expose the BEAM API to it (perhaps with a bit of massaging), and then you could easily compile native apps to WASM and load them in that instead. Something like wasmer could run it either fully interpreted, cranelift JIT compiled, or even LLVM native compiled for near native speed, without needing to compile it for each individual platform and beam bindings needed, especially if a more version independent API were exposed to it… This is an interesting idea… You’d probably want to precompile the wasm engine library for NIF access for each combination of beam VM and arch but that’s only one thing you’d need to do instead of every single possible library… Hmm…

Standalone process communicated via Ports or something similar is doable as well and honestly probably fine for many libraries, but most things made for NIF’s are because they want that speed, and WASM could probably get that close enough (at the very least for dev)…

sorentwo

sorentwo

Oban Core Team

If anybody else is curious, here is the package: GitHub - rusterlium/html5ever_elixir: NIF wrapper of html5ever using Rustler · GitHub

dimitarvp

dimitarvp

Not seeing a PR or a branch t hat contains this new project Jose mentioned, I presume it’s being developed somewhere else.

ImNotAVirus

ImNotAVirus

If I understood correctly, Jose is porting this module to a library : https://github.com/rusterlium/html5ever_elixir/blob/master/lib/html5ever/precompiled.ex

alexslade

alexslade OP

Well, that’s an awesome response that I wasn’t expecting. Thanks for the heads up @josevalim :slight_smile:

I’ll be around in the first people to help test it if needed.

dimitarvp

dimitarvp

Much appreciated, thanks for the link.

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
water
I’m aware of 2 such projects, are there others? git: GitHub - team-alembic/realworld: A fullstack Phoenix LiveView application with back...
New
itzmidinesh
Hi all, I’m working on a Phoenix project where I need to make external HTTP requests and I’m trying to choose between Req and HTTPoison....
New
peck
Hi everyone. My team and I have been working on a fairly modest app based around video streaming and chat, but we’ve landed a customer t...
New
leoschweizer
Hi, we run different LLM models across a cluster, with each node loading a configurable subset. Model-specific queues let nodes consume ...
New
csmr
Hi all, I’m new here and would like to hear peoples views on my Elixir/Phoenix based game-engine! :smiley: Mutonex gamedesign was finish...
New
perzanko
Do we have maintainer of absinthe-graphql/dataloader here? We have a PR that we’d like to merge to the library. Relatively small additive...
New

Other Trending Topics Top

dominicletz
Hey there, I haven’t seen a list of useful Elixir specific skills for the popular AI tools yet so I’m starting one here with my first. ...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
OndrejValenta
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly) AI dream has many faces, but general...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews