Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/Pyrlang/Pyrlang

Erlang node implemented in Python 3.5+ (Asyncio-based)
https://github.com/Pyrlang/Pyrlang

distributed erlang erlang-node gevent library message-passing python rpc

Last synced: 28 days ago
JSON representation

Erlang node implemented in Python 3.5+ (Asyncio-based)

Awesome Lists containing this project

README

        

# Pyrlang - Erlang node in Python

This is a drop-in Erlang node implementation in Python 3, implementing
a network Erlang node protocol. It was designed to allow interoperation between
existing Python projects and BEAM languages: Erlang, Elixir, Gleam, Luaerl,
LFE, Clojerl and such.

With just a few lines of startup code your Python program becomes an Erlang
network node, participating in the Erlang cluster.

## Features

* Erlang distribution protocol for Erlang versions 19 to 25
* Registry of Python 'processes', which have an Erlang-compatible process
identifier and an optional registered name
* Send and receive messages locally and remotely by pid or name
* Can link and monitor Erlang from Python and Python from Erlang
* `net_adm` pings supported
* RPC calls to Python (Erlang `rpc:call`). Exceptions are propagated
from Python back to Erlang;
* `pyrlang.gen.server.GenServer` descendant from `pyrlang.process.Process`
allows accepting generic calls mapped to Python class members

## Documentation

Browse at https://pyrlang.github.io/Pyrlang/

Or build your own by running `make docs` (generated by Sphinx).

## Installing

### From PyPI

### Local from Sources

1. Clone [Pyrlang](https://github.com/Pyrlang/Pyrlang) and [Term](https://github.com/Pyrlang/Term) repositories
2. Install Term from source: Go to Term directory and `pip install -e .`
3. Install Pyrlang from source: Go to Pyrlang directory and `pip install -e .`

## Support & Questions

For those times when you absolutely need assistance and email is too slow, here's a Discord channel: https://discord.gg/pWWe7Wx and there is a Slack channel `#pyrlang` on https://erlanger.slack.com/