LuciferCore 5.6.0

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package LuciferCore --version 5.6.0
                    
NuGet\Install-Package LuciferCore -Version 5.6.0
                    
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="LuciferCore" Version="5.6.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LuciferCore" Version="5.6.0" />
                    
Directory.Packages.props
<PackageReference Include="LuciferCore" />
                    
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 LuciferCore --version 5.6.0
                    
#r "nuget: LuciferCore, 5.6.0"
                    
#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.
#:package LuciferCore@5.6.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LuciferCore&version=5.6.0
                    
Install as a Cake Addin
#tool nuget:?package=LuciferCore&version=5.6.0
                    
Install as a Cake Tool

LuciferCore

NuGet Downloads

LuciferCore is a high-performance, event-driven framework for .NET.

It is built for modulith architecture: start as one clean monolith, then split modules into microservices later when needed.

LuciferCore combines:

  • OOP for clear architecture
  • DOD for data speed and memory efficiency

The core idea is a Buffer-Model design to reduce allocations and improve CPU cache usage.


🚀 Key Features

  • Modulith-first design
    Build independent business modules in one app. Move to microservices later with minimal changes.

  • Fast DI (LuciferModel)
    Uses static-generic patterns and compiled expressions to reduce runtime overhead.

  • Smart pooling
    Combines ArrayPool<byte> and ObjectPool<T> to reduce GC pressure.

  • Attribute-driven architecture
    Use attributes like [Server], [Handler], [Manager], [Middleware], [Route] for clear structure.


🧠 Design Philosophy (OOP + DOD)

Data-Oriented flow for performance

Network payloads are handled in contiguous buffers to improve memory locality and reduce cache misses.

OOP flow for maintainability

High-level components like Session/Request/Response stay clean and modular.

Compiled DI for low overhead

LuciferModel builds dependency factories ahead of time, avoiding heavy runtime reflection.


âš¡ Typical Workflow

  1. Decorate classes with attributes ([Server], [Handler], [Manager], [Middleware])
  2. Implement your logic
  3. Run with:
Lucifer.CMD("/run"u8);

🛠 Quick Start

1) Create server

[Server("ChatServer", 8443)]
public class ChatServer : WssServer
{
    public ChatServer(SslContext context, IPAddress address, int port) : base(context, address, port)
    {
        AddStaticContent(_staticContentPath);
        Cache.Freeze();

        Mapping = new(true)
        {
            { "/", "/index.html" },
            { "/404", "/404.html" }
        };
        Mapping.Freeze();
    }

    public ChatServer(int port) : this(CreateSslContext(), IPAddress.Any, port) { }

    protected override ChatSession CreateSession() => new(this);

    [Config("WWW", "assets/client/dev")]
    private static string _staticContentPath { get; set; } = string.Empty;

    [Config("CERTIFICATE", "assets/tools/certificates/server.pfx")]
    private static string s_certPath { get; set; } = string.Empty;

    [Config("CERT_PASSWORD", "RootCA!SecureKey@Example2025Strong")]
    private static string s_certPassword { get; set; } = string.Empty;

    public static SslContext CreateSslContext()
    {
#if DEBUG
        return SslContext.CreateDevelopmentContext();
#else
        var cert = X509CertificateLoader.LoadPkcs12FromFile(s_certPath, s_certPassword);
        return new(SslProtocols.Tls12, cert);
#endif
    }
}

2) Create session

[RateLimiter(10, 1)]
public partial class ChatSession : WssSession
{
    public ChatSession(ChatServer server) : base(server) { }

    protected override void OnWsReceived(byte[] buffer, long offset, long size)
    {
        // Handle websocket message
    }

    protected override void OnReceivedRequest(RequestModel request)
        => RouteHandler.Route(request, this);
}

3) Create handler

[Handler("v1", "/api/user")]
internal class HttpsHandler : RouteHandler
{
    [Authorize(UserRole.Guest)]
    [HttpGet("")]
    protected void GetHandle([Data] RequestModel request, [Session] HttpsSession session)
        => throw new NotImplementedException();
}

4) Add middleware

[Middleware("AuthGuard")]
internal sealed class AuthGuardMiddleware : MiddlewareHandler
{
    protected override bool Handle(IRoutable data, SessionTransport session)
        => session.IsAuthenticated;
}

Use it in handler:

[HttpGet("")]
[UseMiddleware("AuthGuard")]
[Authorize(UserRole.Guest)]
public void SendChat([Session] ChatSession session, [Data] PacketModel data)
{
}

5) Add manager

[Manager("MasterManager")]
public class ManagerMaster : ManagerBase
{
    protected override void Setup()
    {
    }

    protected override void Update()
    {
        Lucifer.Log(this, "Master is running...."u8);
        workload = 10;
    }
}

6) Program entry point

using LuciferCore.Main;

Lucifer.CMD("/run"u8);

Console Commands

Built-in examples:

  • /start managers
  • /stop managers
  • /restart managers
  • /start servers
  • /stop servers
  • /restart servers

Custom command example:

[ConsoleCommand("/start proxy", "Start proxy")]
private static void CmdStartProxy() => Start();

[ConsoleCommand("/stop proxy", "Stop proxy")]
private static void CmdStopProxy() => Stop();

📦 Installation

dotnet add package LuciferCore

📜 License

LuciferCore uses dual licensing:

  • AGPL-3.0 (open-source / evaluation)
  • Commercial License (for closed-source or enterprise use)

If your company uses LuciferCore in proprietary products or SaaS, you need a commercial license:

👉 https://bufmod.lemonsqueezy.com/


👤 Author


Pushing .NET performance with practical architecture and efficient memory design.

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

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
5.10.0 23 7/31/2026
5.9.0 33 7/31/2026
5.8.0 35 7/30/2026
5.7.0 41 7/30/2026
5.6.0 34 7/30/2026
5.5.0 46 7/29/2026
5.4.0 80 7/28/2026
5.3.1 87 7/22/2026
5.2.0 80 7/22/2026
5.1.0 85 7/21/2026
5.0.0 109 7/21/2026
4.13.0 97 7/20/2026
4.12.2 94 7/20/2026
4.11.0 98 7/20/2026
4.10.0 97 7/19/2026
4.9.0 101 7/19/2026
4.8.0 101 7/12/2026
Loading failed

refactor(buffer): merge BufferExtensions into Buffer.Extensions.cs and migrate core to Memory-first design

     - Unified BufferExtensions into Buffer.Extensions.cs to simplify structure and reduce fragmentation.
     - Refactored internal buffer operations from Span-first to Memory-first, improving safety and enabling
     more flexible slicing while preserving high performance characteristics.
     - Maintained full Span support via Memory.Span to ensure backward compatibility and zero-copy access.
     - Updated all append/read/write paths to use Memory-based primitives as the new core abstraction.
     - Verified correctness across the entire test suite; all unit tests passed.
     - Re-ran performance benchmarks: Memory-first core shows equal or better throughput compared to the
     previous Span-first implementation.

     perf: validate Memory-first Buffer architecture with sustained bombardier load

     - Ran 20-connection 60s bombardier stress tests repeatedly.
     - Observed stable throughput 185k–195k req/s, peaking at ~196k req/s.
     - Latency maintained at 95–105µs across all runs.
     - No 4xx/5xx responses; server remained fully stable.
     - Minor throughput dips (~175k–180k) during continuous runs caused by Windows
     ephemeral port exhaustion; performance returns to 190k+ after short cooldown.
     - Confirms Memory-first Buffer design performs equal or better than previous
     Span-first core under heavy real-world load.