An open API service indexing awesome lists of open source software.

https://github.com/dont-rely-on-nulls/zerl

A Zig library to idiomatically communicate with other BEAM nodes
https://github.com/dont-rely-on-nulls/zerl

erlang erlang-otp nix zerl zig zig-library ziglang

Last synced: about 2 months ago
JSON representation

A Zig library to idiomatically communicate with other BEAM nodes

Awesome Lists containing this project

README

          

* Zerl: Making Erlang + Zig communication EZ
#+html: built with nix

#+html: [Build] Client

#+html:

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.14.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 [[doc/types.org][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 [1/1]
- [X] Update to Zig 0.14.0.

*** 0.3 [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 [[https://github.com/Dr-Nekoma/lyceum][Lyceum]], it's a game built around this library.

** Developing