They even have docs on Hex, so yes you can write ejabberd hooks in Elixir.
Tnx so much appreciated
Ejabberd, MongooseIM which one good choice for start my project?, I want to customize it next by elixir
If you are looking to use elixir, Ejabberd provides one out of the box and that would be the easier way to do it. MongooseIM is erlang based and you would have to get the starting gears yourself.
For MongooseIM with elixir, I found some relevant github issues and some sample implementations and hope this can help you in your quest.
For Ejabberd, the article from their blog is straight forward:
I’ve been down the path of customization for a project and If you are looking to add more and more features that are not standard XMPP, I would recommend you to start from scratch writing your own server implementation using Phoenix Channels / Web Sockets. As long as your customization are minimal, the code upgrade, maintenance will be easier in MongooseIM or Ejabberd.
The easier thing with Ejabberd is the support for custom modules and adding them as a part of config. In MongooseIM, it’s pretty straight-forward but you would have to deal with a lot of XMPP with Erlang and patience to get through the code without breaking the existing implementation.
tnx so so much, great explanation
if you want to create your own xmpp chat server with elixir, how much time you will need to create it with a 5 teams members. do you have any idea about it?
You need to understand why you need XMPP ? XMPP is just a protocol similar to HTTP and web sockets is much easier to handle than XMPP. Our project came with a load on XMPP and since it was fairly loaded with pre-built features we had to stick to it. Creating a new XMPP server from scratch will be humongous and all of the engineers need to have a grasp of XMPP protocols before they can code anything on it. If you are starting from scratch, I would recommend getting started with Web Sockets to avoid the pain of having to deal with both PROTOCOL and CODE MAINTENANCE.
I need xmpp server for chat app, so I guess the best choice continue ejabberd with hooks.