Skip to content

eraserewind/elixir-ircd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

About

Experimental IRCd in Elixir

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages