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
- Host: GitHub
- URL: https://github.com/dont-rely-on-nulls/zerl
- Owner: dont-rely-on-nulls
- License: unlicense
- Created: 2024-07-21T04:36:41.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-12T10:23:15.000Z (3 months ago)
- Last Synced: 2025-08-19T13:50:33.082Z (3 months ago)
- Topics: erlang, erlang-otp, nix, zerl, zig, zig-library, ziglang
- Language: Zig
- Homepage:
- Size: 125 KB
- Stars: 45
- Watchers: 4
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
* Zerl: Making Erlang + Zig communication EZ
#+html: 
#+html: ![[Build] Client](https://github.com/dont-rely-on-nulls/zerl/actions/workflows/build_zerl.yml/badge.svg)
#+html:

/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