Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mickel8/quic_dist
QUIC carrier for Erlang Distribution Protocol
https://github.com/mickel8/quic_dist
distributed-erlang erlang erlang-otp
Last synced: 16 days ago
JSON representation
QUIC carrier for Erlang Distribution Protocol
- Host: GitHub
- URL: https://github.com/mickel8/quic_dist
- Owner: mickel8
- License: apache-2.0
- Created: 2022-03-20T09:48:35.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-07-30T17:30:49.000Z (over 2 years ago)
- Last Synced: 2024-10-13T23:45:41.142Z (about 1 month ago)
- Topics: distributed-erlang, erlang, erlang-otp
- Language: Erlang
- Homepage:
- Size: 115 KB
- Stars: 44
- Watchers: 7
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# quic_dist
QUIC carrier for Erlang Distribution Protocol.
## Build
$ rebar3 compile## Test
Tested on OTP 26 e7e79d8b8b1ec4a97a1940a685b0bb44388c2477
Node names must be in form of 'port@ip'.
EPMD cannot be used as it requires TCP.```
# shell 1$ ERL_FLAGS="-proto_dist quic -no_epmd -config sys" rebar3 shell
1> application:ensure_all_started(quic_dist).
{ok,[quicer,quic_dist]}
2> application:set_env([{quic_dist, [{cert, "/path/to/cert.pem"}, {key, "/path/to/key.pem"}]}]).
ok
3> net_kernel:start('[email protected]', #{}).
{ok,<0.182.0>}
([email protected])4> net_adm:ping('[email protected]').
pong
([email protected])5> net_adm:ping('[email protected]').
pong
([email protected])6> net_adm:ping('[email protected]').
pong
([email protected])7> net_adm:ping('[email protected]').
pong
([email protected])8> spawn('[email protected]', fun () -> erlang:display(hello) end).
<13800.205.0>
([email protected])9>
``````
# shell 2$ ERL_FLAGS="-proto_dist quic -no_epmd -config sys" rebar3 shell
Eshell V13.0 (abort with ^G)
1> application:ensure_all_started(quic_dist).
{ok,[quicer,quic_dist]}
2> application:set_env([{quic_dist, [{cert, "/path/to/cert.pem"}, {key, "/path/to/key.pem"}]}]).
ok
3> net_kernel:start('[email protected]', #{}).
{ok,<0.182.0>}
([email protected])4> net_adm:ping('[email protected]').
pong
([email protected])5> net_adm:ping('[email protected]').
pong
([email protected])6> net_adm:ping('[email protected]').
pong
([email protected])7> hello([email protected])7>
```## Architecture
![](docs/architecture.drawio.png)
## Supported platforms
Limited to platforms supported by quicer.
## Resources
#### Most important
* https://www.erlang.org/doc/apps/erts/alt_dist.html#distribution-module
* https://github.com/erlang/otp/blob/OTP-24.2/lib/kernel/src/inet_tcp_dist.erl
* https://github.com/emqx/quic#### Additional
* https://github.com/hauleth/consulate
* https://www.erlang.org/doc/apps/erts/erl_dist_protocol.html
* https://github.com/potatosalad/otp/pull/1
* https://erlangforums.com/t/rfc-erlang-dist-security-filtering-prototype/1002