https://github.com/aturley/pony-irc-demo
VERY basic IRC server and client demo in Pony
https://github.com/aturley/pony-irc-demo
irc pony-language
Last synced: 7 months ago
JSON representation
VERY basic IRC server and client demo in Pony
- Host: GitHub
- URL: https://github.com/aturley/pony-irc-demo
- Owner: aturley
- Created: 2017-08-16T04:32:53.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-09-26T23:59:39.000Z (about 8 years ago)
- Last Synced: 2025-01-28T10:51:32.520Z (9 months ago)
- Topics: irc, pony-language
- Language: Pony
- Size: 12.7 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Pony IRC
This is a project to develop some code for working with IRC in Pony.
Here's my plan:
0. Look at the IRC protocol.
1. Write a simple TCP listener that I can connect to with an IRC client that dumps messages.
2. Try to evolve the code in 1 into something implements enough of the IRC protocol that the client is happy to talk to it.
3. Based on 2, write some client code that I can use to connect to freenode.## Details
Currently using `ponyc` version `0.17.0-12b6a67`.
## Progress
* The server lives in `server` and can be built by running `ponyc .`
in that directory. It will write the messages it receives to
stdout. I'm currently connecting with `Textual`, an OS X IRC client.* Added a shitty command parser.
* Add a command handler to the server.
* Add client. Run with `client NICK CHANNEL` where `NICK` is the IRC
nickname you want to use and `CHANNEL` is the channel you want to
join to. Connects to `irc.freenode.net`, port 6667. The bot replies
to messages that are sent to the nick.* Add PING/PONG support to the client. No more getting the boot.
* Add a primitive for generating command strings.
* Separate command processing and handling.
* Better argument parsing. It now looks for a colon to find the last
argument.* Add an IRCConnection actor that handles TCP Connection details.
* Pass IRCConnection actor to message handler functions.
* Break apart the application and the library.
* Send `IRCCommand` objects to the `IRCConnection` instead of sending
it raw `String`s.### NEW
* Add explicit connect and disconnect from network connection to
server.