Coder Social home page Coder Social logo

epmdless's Introduction

Erlang (and Elixir) distribution without epmd, aka EPMDLESS

Hex pm

Allows to connect erlang nodes, via Erlang distribution and without epmd, using tcp or tls.

Requirements

Erlang >= 19.1

Configuration

Using TCP as transport protocol

{ epmdless, [
    {transport, tcp},
    {listen_port, 17012}
    ]
}.

Using TLS as transport protocol

{epmdless, [
    {transport, tls},
    {listen_port, 17012}
]}

And follow the instructions found in the OTP docs, Specifying SSL/TLS Options.

VM args

Erlang VM needs few extra flags on start to disable epmd daemon startup and override empd client callback module.

Minimal set of options: erl -proto_dist epmdless_proto -start_epmd false -epmd_module epmdless_client

Note: since epmd is disabled you need to populate epmd-client database manually. Check epmd_dist module API.

Example usage

([email protected])1> epmdless_client:add_node('[email protected]', 17012).
ok
([email protected])2> epmdless_client:list_nodes().
[{'[email protected]',{"host.local",17012}}]

Connecting to epmdless nodes

It's possible to connect to epmdless nodes using remsh. The distribution port can be provided via EPMDLESS_REMSH_PORT environmental variable.

Example usage:

EPMDLESS_REMSH_PORT=17012 erl -name [email protected] -remsh [email protected] -setcookie <cookie> -proto_dist epmdless_proto -epmd_module epmdless_client -pa _build/default/lib/epmdless/ebin

Example project

Please also refer: https://github.com/oltarasenko/erlang_distribution_in_docker for an example of complete project running epmdless.

TLS example for Elixir

Here is a small project which shows how to setup EPMDLess with TLS for Elixir: https://github.com/oltarasenko/epmdless-elixir-example

(Please also see a discussion here: tsloughter/epmdless#11)

epmdless's People

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.