Skip to content

A Zig library to idiomatically communicate with other BEAM nodes

License

Notifications You must be signed in to change notification settings

dont-rely-on-nulls/zerl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zerl: Making Erlang + Zig communication EZ

built with nix
[Build] Client

The Zerl Logo

WORK IN PROGRESS

This is a library for communicating with the BEAM from Zig. It is a wrapper around erl_interface, which is provided with Erlang, and currently targets Zig version 0.13.0.

Note that erl_interface is not currently packaged for Zig, so users of Zerl will need to provide the dependency themselves.

Please refer to this document for how types are translated between Zig and Erlang.

Roadmap

0.1 [1/1]

  • [X] Add unit tests for the decoder and encoder.

0.2 [0/1]

  • [ ] Allow parsing tagged tuples with multiple items from Erlang into Zig tagged unions.

Before 1.0 [0/3]

  • [ ] Expose the timeout version of the networking functions from erl_interface.
  • [ ] Remove all hidden allocations from the library.
  • [ ] Either package erl_interface and add it to build.zig.zon, or drop the dependency entirely.

Examples

See the ./examples directory for some code examples. If you are looking for a non-trivial example, check Lyceum, it’s a game built around this library.

Developing