AbyssIrc.Protocol.Messages
1.2.0
dotnet add package AbyssIrc.Protocol.Messages --version 1.2.0
NuGet\Install-Package AbyssIrc.Protocol.Messages -Version 1.2.0
<PackageReference Include="AbyssIrc.Protocol.Messages" Version="1.2.0" />
<PackageVersion Include="AbyssIrc.Protocol.Messages" Version="1.2.0" />
<PackageReference Include="AbyssIrc.Protocol.Messages" />
paket add AbyssIrc.Protocol.Messages --version 1.2.0
#r "nuget: AbyssIrc.Protocol.Messages, 1.2.0"
#:package AbyssIrc.Protocol.Messages@1.2.0
#addin nuget:?package=AbyssIrc.Protocol.Messages&version=1.2.0
#tool nuget:?package=AbyssIrc.Protocol.Messages&version=1.2.0
AbyssIrc.Network
A comprehensive IRC protocol implementation library for .NET, providing robust parsing, serialization, and command handling for IRC communications.
Features
- Full IRC protocol command support
- Flexible command parsing and serialization
- Comprehensive error handling
- Strongly-typed IRC commands
- Support for both client and server-side operations
- Extensive validation and parsing mechanisms
Installation
Install the package via NuGet:
dotnet add package AbyssIrc.Protocol.Messages
Quick Start
Parsing IRC Commands
// Parsing a PRIVMSG command
var privmsgCommand = new PrivMsgCommand();
privmsgCommand.Parse(":nick!user@host PRIVMSG #channel :Hello, world!");
Console.WriteLine(privmsgCommand.Source); // "nick!user@host"
Console.WriteLine(privmsgCommand.Target); // "#channel"
Console.WriteLine(privmsgCommand.Message); // "Hello, world!"
Creating Commands
// Creating a PRIVMSG command
var newPrivmsg = PrivMsgCommand.CreateFromUser(
"nick!user@host",
"#channel",
"Hello, world!"
);
// Serializing the command
string commandString = newPrivmsg.Write();
Supported Commands
The library provides comprehensive support for IRC commands, including:
- Basic Commands: NICK, USER, PASS, QUIT
- Communication: PRIVMSG, NOTICE
- Channel Operations: JOIN, PART, TOPIC, MODE
- Server Queries: VERSION, ADMIN, INFO
Command Types
Base Commands
PassCommand: Server password authenticationNickCommand: Nickname registrationUserCommand: User registration
Communication Commands
PrivMsgCommand: Private messagingNoticeCommand: Server and user notices
Channel Commands
JoinCommand: Joining channelsPartCommand: Leaving channelsTopicCommand: Channel topic managementModeCommand: Channel and user mode modifications
Error Handling
Comprehensive error command support:
// Creating error responses
var noSuchNickError = ErrNoSuchNick.Create(
"server.com",
"requester",
"target"
);
// Parsing error commands
var errorCmd = new ErrNoSuchNick();
errorCmd.Parse(":server.com 401 nickname target :No such nick/channel");
Advanced Parsing
Flexible Command Parsing
// Parsing multiple commands
var commandParser = new IrcCommandParser();
var commands = await commandParser.ParseAsync(rawMessage);
foreach (var cmd in commands)
{
switch (cmd)
{
case PrivMsgCommand privMsg:
// Handle private message
break;
case JoinCommand joinCmd:
// Handle channel join
break;
}
}
Configuration
Command Parsing Options
var parserOptions = new IrcCommandParserOptions
{
StrictParsing = true, // Enforce strict RFC compliance
AllowExtendedFormat = true // Support extended IRC command formats
};
Performance Considerations
- Minimal allocation overhead
- Efficient parsing mechanisms
- Strongly-typed command representations
- Minimal runtime type checking
Extensibility
- Easy to extend with custom commands
- Implement
IIrcCommandinterface for new command types - Flexible parsing and serialization methods
Dependencies
- .NET 6.0 or later
- System.Text.Json (for serialization)
Contributing
- Fork the repository
- Create your feature branch
- Implement or improve IRC command support
- Write comprehensive tests
- Create a pull request
Roadmap
- Full RFC 1459 and RFC 2812 compliance
- More extensive command validation
- Additional parsing methods
- Enhanced error reporting
License
This project is licensed under the AGPL-3.0-or-later license. See the LICENSE file for details.
Support
- Open an issue on GitHub for bug reports or feature requests
- Join our community discussions
About AbyssIrc
AbyssIrc.Network is a core component of the AbyssIrc ecosystem, providing a robust foundation for IRC protocol implementations.
Note: This library is currently in active development. APIs may change between versions.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Serilog (>= 4.4.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on AbyssIrc.Protocol.Messages:
| Package | Downloads |
|---|---|
|
AbyssIrc.Server.Core
Core server components for AbyssIrc. Provides the fundamental server framework, interfaces, and implementations for building IRC server functionality. |
|
|
AbyssIrc.Server
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.0 | 0 | 10/22/2026 |
| 1.1.0 | 0 | 10/22/2026 |
| 1.0.0 | 78 | 10/20/2026 |
| 0.7.0 | 84 | 10/19/2026 |
| 0.6.1 | 92 | 10/19/2026 |
| 0.5.0 | 386 | 8/7/2025 |
| 0.2.4 | 334 | 4/14/2025 |
| 0.2.3 | 264 | 4/7/2025 |
| 0.2.2 | 200 | 4/5/2025 |
| 0.2.1 | 232 | 4/4/2025 |
| 0.2.0 | 232 | 4/4/2025 |
| 0.1.15 | 270 | 4/3/2025 |
| 0.1.14 | 258 | 4/3/2025 |
| 0.1.9 | 260 | 4/3/2025 |
| 0.1.8 | 267 | 4/3/2025 |