Orion.Core.Server
0.12.2
See the version list below for details.
dotnet add package Orion.Core.Server --version 0.12.2
NuGet\Install-Package Orion.Core.Server -Version 0.12.2
<PackageReference Include="Orion.Core.Server" Version="0.12.2" />
<PackageVersion Include="Orion.Core.Server" Version="0.12.2" />
<PackageReference Include="Orion.Core.Server" />
paket add Orion.Core.Server --version 0.12.2
#r "nuget: Orion.Core.Server, 0.12.2"
#addin nuget:?package=Orion.Core.Server&version=0.12.2
#tool nuget:?package=Orion.Core.Server&version=0.12.2
Orion.Core.Server
Server-side core functionality for the Orion IRC Server project.
IRC is not dead, long live IRC!
🔍 Frontend Developers Wanted!
I'm looking for frontend developers interested in creating a modern web admin interface and web-based IRC client for Orion IRC Server. Experience with React desired!
If interested, please open an issue or contact us via GitHub.
About
Orion.Core.Server provides the essential server-side infrastructure for building a full-featured IRC server. This library includes services, interfaces, configuration handling, event dispatching, and the modular architecture that makes Orion IRC Server flexible and extensible.
Installation
dotnet add package Orion.Core.Server
a Or using the Package Manager Console:
Install-Package Orion.Core.Server
Key Features
- Modular Architecture: Build server components independently and register them during startup
- Extensible Service Container: Easy-to-use dependency injection system
- Event System: Built-in publish/subscribe event system using HyperCube.Postman
- Configuration Management: YAML-based configuration with automatic file handling
- Diagnostic Services: Performance metrics and system diagnostics
- Process Queue: Controlled processing of tasks with statistics
- Scheduler: Time-based task execution system
- JavaScript Scripting Engine: Extend the server with JavaScript
- Text Templating: Template processing with variable support
Architecture
Orion.Core.Server is designed with a modular, service-oriented architecture:
- Services: Core functionality exposed through interfaces
- Modules: Components that register services with the container
- Events: Communication between loosely coupled components
- Configuration: Hierarchical, section-based server configuration
- Command Listeners: Process incoming IRC commands and events
Examples
Creating a Module
using Orion.Core.Server.Extensions;
using Orion.Core.Server.Interfaces.Modules;
public class MyModule : IOrionContainerModule
{
public IServiceCollection RegisterServices(IServiceCollection services)
{
return services
.AddService<IMyService, MyService>()
.AddIrcCommand<MyCommand>();
}
}
Creating a Service
using Orion.Core.Server.Interfaces.Services.Base;
public interface IMyService : IOrionService
{
Task DoSomethingAsync();
}
public class MyService : IMyService, IOrionStartService
{
private readonly ILogger _logger;
public MyService(ILogger<MyService> logger)
{
_logger = logger;
}
public Task DoSomethingAsync()
{
_logger.LogInformation("Doing something");
return Task.CompletedTask;
}
public Task StartAsync(CancellationToken cancellationToken = default)
{
_logger.LogInformation("Service starting");
return Task.CompletedTask;
}
public Task StopAsync(CancellationToken cancellationToken = default)
{
_logger.LogInformation("Service stopping");
return Task.CompletedTask;
}
}
Working with Events
using HyperCube.Postman.Interfaces.Services;
using Orion.Core.Server.Events.Server;
// Publishing an event
await _hyperPostmanService.PublishAsync(new ServerReadyEvent());
// Subscribing to events
public class MyEventHandler : ILetterListener<ServerReadyEvent>
{
public async Task HandleAsync(ServerReadyEvent @event, CancellationToken cancellationToken = default)
{
// Handle the server ready event
}
}
Configuration
using Orion.Core.Server.Data.Config.Base;
public class MyConfigSection : BaseConfigSection
{
public string Name { get; set; } = "Default";
public int SomeValue { get; set; } = 42;
public override void Load()
{
// Custom loading logic
}
}
Dependencies
- Orion.Core: Core utilities and extensions
- Orion.Irc.Core: IRC protocol implementation
- Orion.Network.Core: Networking abstractions
- HyperCube.Postman: Event dispatching
- Serilog: Logging
- CommandLineParser: Command-line parsing
Related Packages
- Orion.Core.Server.Web: Web API and HTTP interface
- Orion.Network.Tcp: TCP implementation for network transports
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
- CommandLineParser (>= 2.9.1)
- Jint (>= 4.2.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.4)
- Orion.Foundations (>= 0.12.2)
- Orion.Irc.Core (>= 0.12.2)
- Orion.Network.Core (>= 0.12.2)
- Scriban (>= 6.2.1)
- Serilog (>= 4.2.0)
- Serilog.Sinks.Console (>= 6.0.0)
- Serilog.Sinks.File (>= 7.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Orion.Core.Server:
Package | Downloads |
---|---|
Orion.Core.Server.Web
Web API and HTTP interface for Orion IRC Server |
|
Orion.JavaScript.Engine
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.30.1 | 253 | 5/15/2025 |
0.30.0 | 218 | 5/13/2025 |
0.29.0 | 227 | 5/12/2025 |
0.28.4 | 204 | 5/12/2025 |
0.28.3 | 205 | 5/12/2025 |
0.28.2 | 218 | 5/12/2025 |
0.28.1 | 120 | 5/11/2025 |
0.28.0 | 59 | 5/10/2025 |
0.27.1 | 158 | 5/8/2025 |
0.27.0 | 134 | 5/8/2025 |
0.26.0 | 128 | 5/8/2025 |
0.25.2 | 133 | 5/8/2025 |
0.25.1 | 133 | 5/8/2025 |
0.25.0 | 147 | 5/8/2025 |
0.24.0 | 138 | 5/6/2025 |
0.23.0 | 133 | 5/6/2025 |
0.22.3 | 132 | 5/6/2025 |
0.22.2 | 144 | 5/5/2025 |
0.22.0 | 102 | 5/2/2025 |
0.21.0 | 98 | 5/2/2025 |
0.20.0 | 107 | 5/2/2025 |
0.19.1 | 112 | 5/2/2025 |
0.19.0 | 138 | 5/1/2025 |
0.18.1 | 135 | 5/1/2025 |
0.18.0 | 139 | 4/30/2025 |
0.17.0 | 128 | 4/29/2025 |
0.16.0 | 153 | 4/29/2025 |
0.15.0 | 140 | 4/28/2025 |
0.14.3 | 142 | 4/28/2025 |
0.14.2 | 141 | 4/28/2025 |
0.14.1 | 142 | 4/28/2025 |
0.14.0 | 134 | 4/28/2025 |
0.13.0 | 140 | 4/28/2025 |
0.12.3 | 142 | 4/28/2025 |
0.12.2 | 140 | 4/28/2025 |
0.12.1 | 140 | 4/28/2025 |
0.11.0 | 139 | 4/28/2025 |
0.10.0 | 142 | 4/28/2025 |
0.9.0 | 149 | 4/23/2025 |
0.8.0 | 141 | 4/23/2025 |
0.7.0 | 155 | 4/22/2025 |
0.6.1 | 137 | 4/22/2025 |
0.6.0 | 155 | 4/20/2025 |
0.5.0 | 158 | 4/20/2025 |
0.4.0 | 154 | 4/20/2025 |
0.3.0 | 81 | 4/19/2025 |
0.2.0 | 134 | 4/18/2025 |
0.1.10 | 166 | 4/18/2025 |
0.1.9 | 163 | 4/18/2025 |
0.1.8 | 158 | 4/18/2025 |
0.1.7 | 157 | 4/18/2025 |
0.1.6 | 161 | 4/18/2025 |
0.1.5 | 162 | 4/18/2025 |
0.1.4 | 156 | 4/18/2025 |
0.1.3 | 186 | 4/17/2025 |
0.1.2 | 187 | 4/17/2025 |
0.0.1 | 51 | 4/28/2025 |