Skip to content

tgiachi/orion

Repository files navigation

Orion

Orion Logo

Orion is a performant, stateful, clustered IRC server designed to run well in Kubernetes.

Orion is also my cat, and this project is dedicated to him.

License .NET

What Is Orion

Orion is an IRC server rewrite focused on predictable hot-path behavior, explicit state ownership, and operational safety.

The goal is not to rebuild the old codebase mechanically. The goal is to establish a simpler and more defensible foundation for a real IRC server that can grow into a production-grade, stateful, clustered system.

Project Status

Orion is currently in the foundation phase of the rewrite.

What is already in place:

  • IRC protocol command, reply, and error models
  • a span-driven IRC message parser
  • transport foundations for TCP-oriented runtime behavior
  • broad automated coverage for the implemented IRC message surface
  • generated DocFX documentation for the IRC messages currently implemented

This repository is active and real, but it is not pretending to be feature-complete yet.

Current Focus

The current work is centered on:

  • protocol correctness
  • parser behavior and coverage
  • transport/runtime foundations
  • contributor-facing documentation
  • keeping the design KISS while staying compatible with Orion's clustered direction

Repository Map

  • src/Orion.Irc.Protocol: IRC protocol types, parser, commands, replies, and wire-level behavior
  • src/Orion.Server.Transports: transport foundations and network-facing runtime primitives
  • src/Orion.Server: current server bootstrap and application entrypoint
  • src/Orion.Core: shared core primitives used by the rewrite
  • tests/Orion.Tests: protocol and transport coverage
  • tests/Orion.Performance: focused benchmark coverage for hot-path protocol work
  • docs/: contributor documentation, including the generated IRC message reference

Getting Started

Clone the repository:

git clone https://github.com/tgiachi/orion.git
cd orion

Build the solution:

dotnet build Orion.slnx

Run the main test suite:

dotnet test tests/Orion.Tests/Orion.Tests.csproj -v minimal

Build the documentation site:

dotnet tool restore
dotnet tool run docfx build docs/docfx.json

Documentation

The IRC message reference is generated from the current implementation and its structured metadata. Each message has its own page with syntax, examples, references, source location, and related tests when available.

Guiding Principles

  • Keep the architecture KISS.
  • Treat protocol parsing, routing, buffering, and state transitions as hot paths.
  • Prefer explicit, deterministic behavior over abstraction for its own sake.
  • Design with stateful clustering in mind from the start.
  • Keep Kubernetes operation, graceful shutdown, and runtime clarity part of the design.

Roadmap

Near-term priorities:

  • continue hardening the runtime and server bootstrap
  • build explicit state ownership for sessions, channels, and node behavior
  • grow operability surfaces such as configuration, readiness, and shutdown behavior
  • prepare the ground for clustered runtime semantics without polluting the current design

Contributing

Contributions are welcome, but the rewrite is intentionally opinionated:

  • favor correctness and clarity over cleverness
  • do not reintroduce old abstractions without re-evaluating them
  • keep performance, statefulness, and operational safety visible in design decisions

License

This project is licensed under the MIT License.

About

Orion: A modern, multi-transport IRC server implemented in C#. Features secure connections via TCP, SSL/TLS, and WebSockets with a modular architecture.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors