IRC.NET is here. Yes, after months of (arduous) labour I have finally created a stable and usable release of my IRC client library for .NET 4.0 (and Mono 2.6). You may find the project hosted over at Launchpad, where you can currently download source, binaries, and documentation for all releases up to 0.3. As you might guess, the project is still in beta stage, though with active interest in the project over the past months, I have had but a handful of minor bug reports. The 0.4 version is shortly upcoming, and is mainly intended to provide extra samples and documentation before the 1.0 release candidate.
If you want an overview of the goal of the project, the Launchpad page probably explains it best:
IRC.NET is a fully-featured IRC (Internet Relay Chat) client library for the .NET Framework 4.0. It aims to provide a complete and accurate implementation of the protocol as described in RFC 2812 (Internet Relay Chat: Client Protocol) as well as supporting de-facto modern features of the protocol, such as ISUPPORT commands and CTCP (Client To Client Protocol).
Oh, and it would hardly be appropriate for an IRC-related project not to have its own IRC channel; feel free to drop by ##ircdotnet over on Freenode. We’re always happy to help.
Overview of Features
- Modern and systematically designed API. Easily integrable into UI/WPF scenarios.
- Full suite of unit tests that interact with live server.
- Detailed error messages provided by the library.
- Comprehensive API documentation (MS HTML Help and MS Help Viewer formats).
- A basic sample with full documentation.
- Connect to and register with multiple IRC servers on arbitrary ports, as either a user or service. SSL support is coming with v0.4.
- Change the user mode and nick name.
- Query the server for information about itself, the network, users, channels, and various other things.
- Track all known users on the server, and store information about them. Receive instant update notifications.
- Join and leave channels, including channels with keys.
- Track the list of users that are currently members of a channel.
- Set and retrieve channel modes (e.g. m, I) as well as channel modes that apply to users (e.g. o, v).
- Kick or ban a user from a channel.
- Send and receive messages and notices to/from other users, channels, and the server.
- Perform WHO/WHOIS/WHOWAS queries on any user and store all received information.
- Configurable rate throttling; a queue of outgoing messages is maintained so as to not flood the server.
- Client-to-client protocol (CTCP) support as a separate layer on top of IRC. Support for all common commands and messages.
- Various non-RFC features in widespread usage, such as ISUPPORT.
The Official Client Application
Note: Ircsil has now been renamed to wIRC. The renamed Launchpad project site can be found here.
As a side-note, I am also running a project to create a modern and user-friendly IRC client for Windows 7, under the (temporary) name of Ircsil. The project is still in its early stages, but feel free to check out the work done so far, and even better, show your support. You’re also welcome to visit our IRC channel, #ircsil on Freenode; it’s always full of discussion.
Here’s an screenshot from a recent build, in the hope of garnering a bit of enthusiasm!