Skip to content

Latest commit

 

History

History
50 lines (33 loc) · 1.35 KB

README.md

File metadata and controls

50 lines (33 loc) · 1.35 KB

Experimental Elixir IRCd

Goals:

  • Learn Elixir
  • Learn how to build distributed apps
  • Link all servers using distributed features
  • Try to do mesh linking between ircds

Current status: trying to implement the basis of IRC protocol, then i'll concentrate on linking the ircds together.

Usage

mix deps.get && mix deps.compile

Run with a console

iex -S mix run

Useful things to do in the console

# Remove a nickname from the server
:gen_server.cast({:global,:server}, { :remove_nick, "nick" })
# Print current server state (also /quote debug printstate)
:gen_server.call({:global,server}, { :printstate })
# Recompile & Reload code
r(ModuleName) # e.g.: r(IRCd.User)

Inspirations & stuff

Code:

Readings that saved me:

IRC protocol: