mwhitworth

mwhitworth

Reverse_proxy_plug_websocket - websocket proxying in Elixir

I’m excited to share reverse_proxy_plug_websocket, a library for reverse proxying websocket connections in Elixir.

This idea grew out of several tickets filed on the reverse_proxy_plug project around a need to support websockets. This library handles the complexity of:

  • Detecting WebSocket upgrade requests

  • Establishing connections to upstream WebSocket servers

  • Maintaining bidirectional message flow between clients and upstream

  • Managing connection lifecycle and cleanup

It supports Gun and Websockex as adapters for the actual websocket functionality.

Proxying in a language like Elixir allows for dynamic runtime behaviour, described in the README, and (hopefully soon) the ability to rewrite or instrument the data stream itself, as required.

Feedback most welcome!

Links

https://github.com/mwhitworth/reverse_proxy_plug

Most Liked

mwhitworth

mwhitworth

I’ve now released 0.2.0, which features the ability to intercept, modify or drop WebSocket frames in either direction - see this section in the README.

Where Next?

Popular in Announcing Top

tmbb
I’ve published the first version of my Makeup library. It’s a syntax highlighter for Elixir in the spirit of Pygments, Currently it highl...
New
kelvinst
Hey everyone! Well, we made this lib a while ago and now we decided to finally go out and public with it! It’s a tool for creating and m...
New
wfgilman
I’ve cleaned up and open sourced three financial libraries I was using for my company. They are bindings for the APIs of these three comp...
New
RobertDober
Earmark is a pure-Elixir Markdown converter. It is intended to be used as a library (just call Earmark.as_html), but can also be used as...
239 12978 134
New
mindok
What is ContEx? A pure Elixir server-side data plotting/charting library outputting SVG. It has nice barcharts in particular and works g...
New
mplatts
With HEEX released we decided to start a components library using Tailwind CSS - check it out here: Petal Components. We also have a boi...
New
brainlid
LangChain is short for Language Chain. An LLM, or Large Language Model, is the “Language” part. This library makes it easier for Elixir a...
New

Other popular topics Top

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 records...
New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 55125 245
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New

We're in Beta

About us Mission Statement