oestrich
One of the cool things that has spun off of ExVenture is Gossip, located at https://gossip.haus/.
Gossip is a cross game chat platform for text games (aka MUDs.) Gossip uses websockets as the underlying protocol for servers to connect to. The protocol is heavily documented so that anyone can connect their game to.
While Gossip is a Phoenix application, it does not use normal channels so as to not force the Phoenix protocol on to other (possibly non-elixir) applications.
There are some pretty cool websocket things (I think) going on in this project and the corresponding Elixir client that I’ve written, located also on GitHub.
https://github.com/oestrich/gossip
P.S. The name gossip comes from MUDs where the main chat channel was called gossip.
Trending in Discussions
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
Hi there! :wave:
@frigidcode and I (but mostly him) have been running an Elixir Book club, we’re almost done with Designing Elixir Syste...
New
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
I’ve been using Emacs as my main code editor for more than a two years. It’s a custom build version although I’ve tried doom emacs and sp...
New
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with.
But I don’t use it anymore.
Serverless was the promis...
New
Lately I’ve been thinking about how to organize components as a LiveView application grows. One of the pain points I’ve found (for myself...
New
What IDE or editor are you using for Elixir development?
Personally, I use Zed, and I really like it, but sometimes I wish there were a ...
New
Other Trending Topics
Edit: 2026 May 15 - This post is archived.
Mob is alive!!
Main docs: mob v0.7.11 — Documentation
A bit of explanation for the slightly c...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #ai
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #security
- #metaprogramming










Showing Posts 1 to 7- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
Ankhers
When naming this project, did you take into consideration the gossip protocol? It is a very well known protocol. If I were to see this project listed somewhere, I would think it was an Elixir implementation of it.
oestrich
I did, but as far as I could tell there isn’t a specific implementation of a gossip protocol and was more of a generic term. So I went with it, I think it fits the theme of MUDs pretty well.
Qqwy
Wooh! Very cool!
i love Multi-User Dungeons and I love what you’ve been building here. I’ll take some time to dig into the internals, because this is exactly my cup 'o tea. Thanks for sharing!
oestrich
I launched a new piece of Gossip over the weekend called Grapevine. This part of Gossip is for players to go on and connect in game characters to their profile. The eventual plan is something akin to Xbox Live or the PlayStation Network, but for text based games.
To make this new site work, I have them plug into the normal websocket for games that then gets upgraded to have more events. The big set of events right now are the sync events. I just did a blog post about them and linked to some spots in each code base for how it works.
https://blog.oestrich.org/2018/10/gossip-sync-protocol
You can also find Grapevine on GitHub: GitHub - oestrich/grapevine: The MUD Chat Network · GitHub
oestrich
Some new updates, Gossip now scrapes older games using the MSSP protocol to get player counts. This was pretty cool to write, there is a simple telnet client that parses out binary telnet options.
I’m also starting to work on achievements. I have the CRUD set up for them, and they’ll push over to Grapevine for display. It’s always really fun to get new things pushing across the backbone sync between Gossip and Grapevine.
Next I’ll be working on unlocking achievements for characters over on Grapevine, the fun part.
oestrich
In the last month Gossip has been merged with and renamed to Grapevine. The split was fairly confusing so while it’s still early I went with combining the two sites.
Other news, I’m working on a general purpose telnet web client for older games. This uses an internal gen_tcp gen_server that processes the possible binary telnet options in the stream and then forwards the text to the web browser. I was also able to keep the session alive between browser reloads with a DynamicSupervisor.
https://s3.amazonaws.com/midmud/images/2019-01-31-grapevine-web-client.png
I also did this on my weekly live coding stream as well if you want to watch the supervisor part in action.
Something I still need to figure out is how to deploy a new release without taking down existing connections. I think this means I need to spin up separate nodes, having all of the telnet connections living on a separate note that rarely needs to be redeployed.
oestrich
Since last week I’ve been able to add a set of generic gauges to the client, for games that support the GMCP protocol. The GMCP protocol is an out of band stream inside of a telnet connection. I’m hoping to do a blog post about the binary pattern matching that enables this parsing sometime in the next few weeks.