GitXplorerGitXplorer
r

irc_server

public
0 stars
0 forks
0 issues

Commits

List of commits on branch master.
Verified
f03693fa5ec410966380fe88fa83676211b67704

add command body parser & set realname

rrobinsonweng committed 6 months ago
Verified
56c7ef99a0702de76dfcce37009dfb523a7ea9c2

Merge pull request #1 from robinsonweng/tdd

rrobinsonweng committed 6 months ago
Verified
b3e7eebda1d1a56e576f1811bdc4455eb31bc174

refactor to hide test detail

rrobinsonweng committed 6 months ago
Verified
fbfa443599222d2436be882401aedcbdc1604a40

reverse the order to pop message & add getter method to get nickname

rrobinsonweng committed 6 months ago
Verified
50c4c3c408bf1af502cc4692f3f77aacd613935a

refactor: use switch & enum to organize irc commands

rrobinsonweng committed 6 months ago
Verified
8b6fa55051caf185a335563b15f72ffa1a9f2af0

implemented numeric response 001 when call 'NICK' command

rrobinsonweng committed 6 months ago

README

The README file for this repository.

A toy example for irc server in rust

This is a irc server implmentation in rust & rfc1459 & modern irc protocol.

TODO

Main feature

  • [x] Use tcplisten to listen irc port (6667)

  • Implment most command in single thread

    • [x] NICK
    • [x] USER
    • [x] PING
    • [ ] LIST
    • [ ] JOIN
    • [ ] TOPIC
    • [ ] NAMES
    • [ ] PART
    • [ ] USERS
    • [ ] PRIVMSG
    • [ ] QUIT
  • Implment necessary numeric commands

    • [x] (001) RPL_MYINFO
    • [x] (002) RPL_CREATED
    • [x] (003) RPL_YOURHOST
    • [x] (004) RPL_WELCOME
    • [x] (005) RPL_ISUPPORT
    • [ ] (321) RPL_LISTSTART
    • [ ] (322) RPL_LIST
    • [ ] (323) RPL_LISTEND
    • [ ] (331) RPL_NOTOPIC
    • [ ] (332) RPL_TOPIC
    • [ ] (353) RPL_NAMREPLY
    • [ ] (366) RPL_ENDOFNAMES
    • [ ] (372) RPL_MOTD
    • [ ] (375) RPL_MOTDSTART
    • [ ] (376) RPL_ENDOFMOTD
    • [ ] (392) RPL_USERSSTART
    • [ ] (393) RPL_USERS
    • [ ] (394) RPL_ENDOFUSERS
    • [ ] (401) ERR_NOSUCHNICK
    • [ ] (402) ERR_NOSUCHSERVER
    • [ ] (403) ERR_NOSUCHCHANNEL
    • [ ] (409) ERR_NOORIGIN
    • [ ] (411) ERR_NORECIPIENT
    • [ ] (412) ERR_NOTEXTTOSEND
    • [ ] (421) ERR_UNKNOWNCOMMAND
    • [ ] (431) ERR_NONICKNAMEGIVEN
    • [ ] (436) ERR_NICKCOLLISION
    • [ ] (442) ERR_NOTONCHANNEL
    • [ ] (461) ERR_NEEDMOREPARAMS
    • [ ] (451) ERR_NOTREGISTERED

Advanced feature

  • [ ] maby add async support by using tokio, or mio, not decided yet, or multi-thread

Other cool to have feature

  • [ ] migrate to ircs (6697) and remove support for irc (6667)