Orion.Irc.Core
0.30.1
dotnet add package Orion.Irc.Core --version 0.30.1
NuGet\Install-Package Orion.Irc.Core -Version 0.30.1
<PackageReference Include="Orion.Irc.Core" Version="0.30.1" />
<PackageVersion Include="Orion.Irc.Core" Version="0.30.1" />
<PackageReference Include="Orion.Irc.Core" />
paket add Orion.Irc.Core --version 0.30.1
#r "nuget: Orion.Irc.Core, 0.30.1"
#addin nuget:?package=Orion.Irc.Core&version=0.30.1
#tool nuget:?package=Orion.Irc.Core&version=0.30.1
Orion.Irc.Core
IRC protocol implementation for the Orion IRC Server project.
IRC is not dead, long live IRC!
About
Orion.Irc.Core provides a comprehensive implementation of the IRC protocol for building IRC servers and clients. This library handles parsing, formatting, and validating IRC messages according to RFC standards, offering a clean object-oriented approach to working with the protocol.
Installation
dotnet add package Orion.Irc.Core
Or using the Package Manager Console:
Install-Package Orion.Irc.Core
Key Features
- Command System: Complete implementation of IRC commands
- Parser: Efficient parsing of IRC messages
- Command Builder: Fluent builders for creating IRC commands
- RFC Compliance: Implementation follows IRC RFCs
- Numeric Responses: All standard IRC numeric responses
- Error Handling: Specialized error handling for IRC protocol issues
- Type-Safe: Strong typing for IRC commands and responses
Supported Commands
Orion.Irc.Core implements numerous IRC commands including:
- Basic commands: JOIN, NICK, USER, QUIT, PRIVMSG, etc.
- Channel operations: MODE, KICK, INVITE, TOPIC, etc.
- Server operations: KILL, LINKS, OPER, etc.
- Information commands: WHO, WHOIS, ISON, etc.
- And many others!
Examples
Parsing IRC Messages
using Orion.Irc.Core.Interfaces.Commands;
using Orion.Irc.Core.Interfaces.Parser;
using Orion.Irc.Core.Services;
// Create a parser
IIrcCommandParser parser = new IrcCommandParser(loggerFactory.CreateLogger<IrcCommandParser>());
// Register command handlers
parser.RegisterCommand<JoinCommand>();
parser.RegisterCommand<NickCommand>();
parser.RegisterCommand<UserCommand>();
// Parse a message
string message = ":nick!user@host JOIN #channel";
IIrcCommand command = await parser.ParseAsync(message);
// Cast to specific command type
if (command is JoinCommand joinCommand)
{
Console.WriteLine($"User {joinCommand.Source} joined {joinCommand.Channels[0].ChannelName}");
}
Creating and Serializing Commands
using Orion.Irc.Core.Commands;
using Orion.Irc.Core.Data.Channels;
// Create a JOIN command
var joinCommand = new JoinCommand
{
Channels = new List<JoinChannelData>
{
new JoinChannelData("#orion"),
new JoinChannelData("#testing", "password")
}
};
// Serialize to string
string message = joinCommand.Write();
// Result: "JOIN #orion,#testing password"
// Create a KICK command
var kickCommand = KickCommand.Create("server.name", "#channel", "baduser", "Violated rules");
// Serialize
string kickMessage = kickCommand.Write();
// Result: ":server.name KICK #channel baduser :Violated rules"
Working with Numeric Responses
using Orion.Irc.Core.Commands.Replies;
// Create a welcome message (RPL_WELCOME - 001)
var welcome = RplWelcome.Create(
"irc.server.name",
"nickname",
"Welcome to the Orion IRC Network, nickname!user@host"
);
// Serialize
string welcomeMessage = welcome.Write();
// Result: ":irc.server.name 001 nickname :Welcome to the Orion IRC Network, nickname!user@host"
Architecture
Orion.Irc.Core is designed with a clean, modular architecture:
- Commands: Classes representing IRC commands
- Parser: Transforms raw IRC messages to command objects
- Interfaces: Clean contracts for extensibility
- Data Models: Type-safe representation of IRC data
Dependencies
- Microsoft.Extensions.Logging.Abstractions: Logging infrastructure
Related Packages
- Orion.Core: Core utilities and extensions
- Orion.Core.Server: Server-side core functionality
- Orion.Network.Core: Networking abstractions
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project Links
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net9.0
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Orion.Irc.Core:
Package | Downloads |
---|---|
Orion.Core.Server
Server-side core functionality for Orion IRC Server |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.30.1 | 247 | 5/15/2025 |
0.30.0 | 219 | 5/13/2025 |
0.29.0 | 226 | 5/12/2025 |
0.28.4 | 206 | 5/12/2025 |
0.28.3 | 206 | 5/12/2025 |
0.28.2 | 220 | 5/12/2025 |
0.28.1 | 122 | 5/11/2025 |
0.28.0 | 59 | 5/10/2025 |
0.27.1 | 158 | 5/8/2025 |
0.27.0 | 133 | 5/8/2025 |
0.26.0 | 131 | 5/8/2025 |
0.25.2 | 133 | 5/8/2025 |
0.25.1 | 132 | 5/8/2025 |
0.25.0 | 145 | 5/8/2025 |
0.24.0 | 139 | 5/6/2025 |
0.23.0 | 138 | 5/6/2025 |
0.22.3 | 138 | 5/6/2025 |
0.22.2 | 142 | 5/5/2025 |
0.22.0 | 105 | 5/2/2025 |
0.21.0 | 98 | 5/2/2025 |
0.20.0 | 111 | 5/2/2025 |
0.19.1 | 107 | 5/2/2025 |
0.19.0 | 143 | 5/1/2025 |
0.18.1 | 136 | 5/1/2025 |
0.18.0 | 136 | 4/30/2025 |
0.17.0 | 137 | 4/29/2025 |
0.16.0 | 160 | 4/29/2025 |
0.15.0 | 153 | 4/28/2025 |
0.14.3 | 162 | 4/28/2025 |
0.14.2 | 153 | 4/28/2025 |
0.14.1 | 148 | 4/28/2025 |
0.14.0 | 148 | 4/28/2025 |
0.13.0 | 149 | 4/28/2025 |
0.12.3 | 151 | 4/28/2025 |
0.12.2 | 147 | 4/28/2025 |
0.12.1 | 147 | 4/28/2025 |
0.12.0 | 137 | 4/28/2025 |
0.11.1 | 150 | 4/28/2025 |
0.11.0 | 144 | 4/28/2025 |
0.10.0 | 156 | 4/28/2025 |
0.9.0 | 158 | 4/23/2025 |
0.8.0 | 156 | 4/23/2025 |
0.7.0 | 172 | 4/22/2025 |
0.6.1 | 152 | 4/22/2025 |
0.6.0 | 173 | 4/20/2025 |
0.5.0 | 159 | 4/20/2025 |
0.4.0 | 176 | 4/20/2025 |
0.3.0 | 100 | 4/19/2025 |
0.2.0 | 145 | 4/18/2025 |
0.1.10 | 180 | 4/18/2025 |
0.1.9 | 166 | 4/18/2025 |
0.1.8 | 172 | 4/18/2025 |
0.1.7 | 164 | 4/18/2025 |
0.1.6 | 177 | 4/18/2025 |
0.1.5 | 175 | 4/18/2025 |
0.1.4 | 181 | 4/18/2025 |
0.1.3 | 192 | 4/17/2025 |
0.1.2 | 207 | 4/17/2025 |