-
Thank you for your work on adding user registration and authorization to Phoenix!
I'm setting up a new Phoenix app for a side project this weekend and have just run Arron Renner's [auth generator](https://github.com/aaronrenner/phx_gen_auth). Having user registration out of the box will save a big chunk of time and energy!
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
-
elixir-raknet
An Elixir client for the core of the RakNet networking protocol, useful for games and other latency-sensitive applications that typically rely on UDP
Happy Elixir user here. At work we have a use case that isn't covered by José's high-level overview of the domains Elixir's used in: we run a massive multiplayer game server on it.
This is actually a really good fit. (It kind of rhymes with the original use of Erlang, being telecoms infrastructure.) We get outstanding concurrency support, high reliability, and really efficient development times. I can't imagine shipping this feature with a server written in C++ (the language I'm most comfortable in), and I can't imagine scaling it the way we need to if we'd gone for a traditional web language like Node, PHP, etc.
If you're interested, you can see the RakNet (game networking protocol) implementation we use on the server here:
https://github.com/X-Plane/elixir-raknet
The README gives a good overview of the full MMO server's architecture, too: each client connection is a stateful Elixir process (not to be confused with a heavy-weight OS process!), acting asynchronously on a client state struct; clients then asynchronously schedule themselves to send updates back to the user.
-
credo
A static code analysis tool for the Elixir language with a focus on code consistency and teaching.
Yes there is a formatter built into Mix, the Elixir build tool. There is also https://github.com/rrrene/credo which is not as extensive but does the same thing as ESLint.
-
There are packages on Hex that haven't been updated in a long time but still work perfectly (Canada, for example: https://github.com/jarednorman/canada). Elixir itself doesn't change much... in fact there's no plans for a 2.0 on the horizon, so the fact that packages don't change often isn't a big deal if they still do what they say they do and aren't hurting for more features.
-
Do you use it for server side game logic too?
It's not as ambitious as an MMO, but I like to use MUDs to learn new languages. I've been (slowly) working on one to learn Elixir and I'm actually finding the concurrency model somewhat difficult to use for the MUD - especially the single world that every player connects to.
I ended up writing my own kind of software transactional memory library to help me out: https://github.com/stevbov/stm_agent
But relying on a library like this feels fairly un-Elixir-like. It seems like the language would shine more in a problem space where there's not so much potential for arbitrary processes to depend upon eachother.
-
You'd likely be interested in the work done by Eric Oestrich in building MUDs with Elixir.
Kalevala: a world building toolkit for text based games, written in Elixir [0]
ExVenture: a text based MMO server written in Elixir [1]
Grapevine: a MUD chat network [2]
[0] https://github.com/oestrich/kalevala
[1] https://github.com/oestrich/ex_venture
[2] https://github.com/oestrich/grapevine
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives