Maxximiliann

Maxximiliann

Supervising Python processes from Elixir

My Elixir project must rely on PyWaves, a Python library, to execute trades. Erlport and Pyrlang looked like attractive solutions for reliable connectivity between the two but, after further inspection, it appears both projects have been abandoned.

gRPC seems to be a viable alternative but before going down that rabbit hole I have to ask, are there any actively maintained libraries that offer simple, featherweight, direct solutions to establishing, maintaining and monitoring communications between Elixir and Python codebases running on the same machine?

Most Liked

skosch

skosch

Shameless plug: there is a small Python library called erlastic that handles the conversion between Erlang’s and Python’s internal encoding of strings, numbers, objects etc. It’s not mine but I maintain a fork here which AFAIK is the most up-to-date version. I’ve been using this thing with ports for years – I outsource numerical computation jobs to Python scripts, and it works great.

mindok

mindok

This is a great article showing exactly what it means to use ports to connect Elixir & Python (for a different use case): https://www.poeticoding.com/real-time-object-detection-with-phoenix-and-python/

hauleth

hauleth

You can use regular ports (Erlport is just wrapper on top of that) or C-Nodes.

skosch

skosch

Sorry, good question! I should put it on PyPi. You should be able to install it directly from Github though; I simply use pip3 install git+https://github.com/skosch/python-erlastic.

mindok

mindok

I believe so - a single Elixir process can control multiple ports, and you can obviously also have multiple processes controlling one or more ports.

Also, another article that is worth reading is https://www.theerlangelist.com/article/outside_elixir

Where Next?

Popular in Questions Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
Werner
Hi, I’m using Ubuntu 18.04 and after updating to OTP-24.0 yesterday i have this warning when I run “mix local.hex”: 14:57:30.512 [warn] ...
New
myronmarston
The Elixir Typespec docs show the following syntax for keyword lists in typespecs: # ... | [key: type] # keyword lis...
New
makeitrein
Hey all, just started picking up Elixir last week and am writing a scraper as a learning project. Baby step #1 is extracting the number ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
qwerescape
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
Fl4m3Ph03n1x
Background Let’s assume I have a typical GenServer that receives messages as requests, does some operation in a DB and returns responses....
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
idi527
I’ve been re-reading swift book again and noticed that multiline strings there don’t have a trailing line break, unlike in elixir iex(2)...
New

Other popular topics Top

chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30048 115
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 record...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
qwerescape
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
beno
I will often find my self writing things similar to: case some_value do nil -> something() "" -> something() _ -> someth...
New
AstonJ
by Lance Halvorsen Elixir and Phoenix are generating tremendous excitement as an unbeatable platform for building modern web application...
460 27162 124
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New

We're in Beta

About us Mission Statement