What libs do you use to interop natively with Erlang?

I wonder how many other libs are and what languages do you use for the subject?

I know, there are C, Java libs (as a part of Erlang distribution), there is also Ergo Framework in Golang. What else?

2 Likes

I know of Pyrlang as well. GitHub - Pyrlang/Pyrlang: Erlang node implemented in Python 3.5+ (Asyncio-based). I have not tried it but think it is pretty capable.

Another way to interop that we practice (maybe you don’t call that native) is to use Google Protocol Buffers, make a proto spec and generate code for Erlang with the excellent gpb and generate for another language that you interop with and then using some other protobuf compiler either from Google or other source.

2 Likes

We’ve used erlport to connect to python. It currently supports python and ruby.

3 Likes

I have a port written in F# which wraps a dll I can’t see in to. I’m using the ETF library. I’m toying with exchanging it for a port driver to reduce overhead.

2 Likes

Ports are easy to write in any language, but for speed with NIF’s I used to use C (once NIF’s became a thing, they didn’t exist originally) but now won’t touch anything but Rust for them, it brings the safety that you really need to rely on for a NIF to keep up the stability of the system.

1 Like

What would you consider the best online resource as far as erlport tutorials go? I’m interested in using Erlang/Elixir to manipulate panda dataframes and also use a couple other useful NLP libraries that I can’t find the equivalency in other languages.

Thanks for any help!

2 Likes

Hello @bradhanks! I’m not sure about using erlport, as it seems quite old, maybe even alpha quality, and looks unmaintained since 2015, so I’m wondering if it will even work with the latest Erlang releases.

You might want to check out Pyrlang - I haven’t used it myself but I’ve been looking for a project to try it out on as it seems pretty cool for doing what it sounds like you want to do. It says it’s compatible up to R23 so although it’s not definitely supported on the very latest releases, it may well work fine, and seems certain to be more compatible than erlport.

Good luck, and would be very interested to hear your thoughts on it if you do try it out!


Edit: I got confused about dates and didn’t see some of the older replies on this thread, seems Pyrlang was already brought up a while ago. Hey ho :man_shrugging:t2:

1 Like

Pyrlang is in a new fork and renamed to PY-NAP-ERL (“pineapple”) , which will be launched soon. This is why it looks like nothing has happened for a while. It is a set of libraries that can be replicated in other languages. NAP is Native Access Portal.

2 Likes

We have very positive experience with Rustler.

2 Likes

Maybe you can have a look at The Erlangelist

2 Likes

@martinc Any rough ETA for PY-NAP-ERL? Days? Weeks? Months? Who knows?

1 Like

@Sparky Pyrlang has been running in production at one of my earlier clients for a few years. PNE is the same base, just renamed and trying to streamline it a bit.

I have a hard time finding time to get a good testsystem up and running to make sure all parts are working, but if I had someone that actually want to use it and is ready to be a guinea pig that would help a lot

2 Likes

@s2hc-johan Thank you for the information. I will look into Pyrlang and see if it will work for my application. If it looks like it will be a good option, I might be interested in testing PNE with my application. If that ends up being the case, I’ll reach out to you and see if you are still in need of a guinea pig.

1 Like