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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Orion.Irc.Core" Version="0.30.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Orion.Irc.Core" Version="0.30.1" />
                    
Directory.Packages.props
<PackageReference Include="Orion.Irc.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Orion.Irc.Core --version 0.30.1
                    
#r "nuget: Orion.Irc.Core, 0.30.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Orion.Irc.Core&version=0.30.1
                    
Install Orion.Irc.Core as a Cake Addin
#tool nuget:?package=Orion.Irc.Core&version=0.30.1
                    
Install Orion.Irc.Core as a Cake Tool

Orion.Irc.Core

NuGet Version License .NET

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
  • 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.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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