LuciferCore 4.10.0

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package LuciferCore --version 4.10.0
                    
NuGet\Install-Package LuciferCore -Version 4.10.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="4.10.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LuciferCore" Version="4.10.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 4.10.0
                    
#r "nuget: LuciferCore, 4.10.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@4.10.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=4.10.0
                    
Install as a Cake Addin
#tool nuget:?package=LuciferCore&version=4.10.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)
        => Lucifer.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....");
        workload = 10;
    }
}

6) Program entry point

using LuciferCore.Main;

Lucifer.CMD("/run"u8);

Console Commands

Built-in examples:

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

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.16.0 0 8/3/2026
5.15.1 27 8/3/2026
5.14.1 31 8/3/2026
5.13.0 32 8/3/2026
5.12.0 35 8/2/2026
5.11.0 41 8/2/2026
5.10.0 40 7/31/2026
5.9.0 41 7/31/2026
5.8.0 39 7/30/2026
5.7.0 42 7/30/2026
5.6.0 36 7/30/2026
5.5.0 47 7/29/2026
5.4.0 81 7/28/2026
5.3.1 90 7/22/2026
5.2.0 82 7/22/2026
5.1.0 87 7/21/2026
4.10.0 101 7/19/2026
Loading failed

LuciferCore High-Throughput HTTP Milestone (188k+ RPS)

     - This release pushes throughput to a stable 188k+ requests per second and drops latency to under 480 microseconds by removing heavy internal dictionary caches and shifting to hardware-friendly flat structures.
     - The internal Utf8Map header lookup cache has been stripped. Headers and cookies are now stored in tightly packed linear arrays managed via custom HeaderEntry struct wrappers, completely replacing generic ValueTuple wrappers and hashing overhead. This shifts lookups to high-speed linear scans (O(k)) that execute directly on CPU registers using SIMD vectorization.
     - Dead-code fields, including the internal _cacheSize tracking variable, have been removed from the parser loops to eliminate redundant memory writes. These changes ensure optimal L1/L2 hardware prefetching and unshakeable throughput stability under extreme load.