Tài liệu

Tổng quan gói

Thời gian đọc 4 phút
Trên trang này

Nalix được tổ chức theo kiến trúc 5 cấp nghiêm ngặt (Level 0 đến Level 4) không có phụ thuộc vòng, kèm theo các analyzer Roslyn và source generator lúc biên dịch. Bạn có thể cài các meta-package cấp cao để phát triển ứng dụng nhanh, hoặc tham chiếu độc lập các gói cấp thấp hơn.

Kiến trúc phụ thuộc 5 cấp

Architecture Diagram
flowchart TD
    subgraph L4 ["Level 4 — Application Host"]
        Hosting["Nalix.Hosting"]
    end

    subgraph L3 ["Level 3 — Transport, Dispatch & Client SDK"]
        Network["Nalix.Network"]
        Runtime["Nalix.Runtime"]
        SDK["Nalix.SDK"]
    end

    subgraph L2 ["Level 2 — Wire Codec & Core Services"]
        Codec["Nalix.Codec"]
        Framework["Nalix.Framework"]
    end

    subgraph L1 ["Level 1 — Memory, IO & Configuration"]
        Env["Nalix.Environment"]
    end

    subgraph L0 ["Level 0 — Pure Contracts"]
        Abs["Nalix.Abstractions"]
    end

    Hosting --> Network
    Hosting --> Runtime
    Network --> Framework
    Runtime --> Codec
    Runtime --> Framework
    SDK --> Codec
    Codec --> Env
    Framework --> Env
    Env --> Abs

Bản đồ gói lúc chạy

CấpGóiMục đíchKiểu công khai chính
0Nalix.AbstractionsInterface không phụ thuộc, attribute cho gói tin/handler và metadata kiểm tra hợp lệIPacket, IConnection, IBufferLease, IPacketContext<T>, PacketOpcodeAttribute, PacketHandlerAttribute
1Nalix.EnvironmentNguyên thủy bộ nhớ có pool, reader/writer nhị phân, cấu hình INI, đồng hồ đơn điệu và CSPRNG của hệ điều hànhBufferLease, DataReader, DataWriter, ConfigurationManager, Directories, Clock, TimingScope, Csprng
2Nalix.CodecTuần tự hóa nhị phân lúc biên dịch, nén LZ4, mã hóa AEAD và danh mục gói tinLiteSerializer, PacketRegistry, LZ4Codec, EnvelopeCipher, FramePipeline, PacketBase<TSelf>, PacketFactory<T>
2Nalix.FrameworkRegistry singleton/dịch vụ, lập lịch worker nền, ID Snowflake và pool tài nguyênInstanceManager, TaskManager, Snowflake, BufferPoolManager, ObjectPoolManager, ObjectMap<TKey, TValue>
3Nalix.RuntimeĐiều phối gói tin phía máy chủ theo shard, chuỗi middleware, giới hạn tốc độ và tiếp tục phiênPacketDispatchChannel, PermissionMiddleware, RateLimitMiddleware, TimeoutMiddleware, SessionService
3Nalix.NetworkListener TCP, UDP và WebSocket, kết nối socket, bảo vệ khi chấp nhận kết nối và connection hubTcpListenerBase, UdpListenerBase, WebSocketListenerBase, Protocol, ConnectionHub, ConnectionGuard, SocketConnection
3Nalix.SDKPhiên TCP/UDP phía client, bắt tay X25519, tự động kết nối lại và request có ghép cặpTransportSession, TcpSession, UdpSession, SessionState, TransportOptions, RequestOptions
4Nalix.HostingBộ dựng máy chủ kiểu fluent, ánh xạ giao thức (MapTcp/MapUdp/MapWebSocket) và vòng đời hostNetworkApplication, INetworkApplicationBuilder, DefaultProtocol, Bootstrap

Công cụ lúc biên dịch (Roslyn Analyzers & Generators)

Nalix đi kèm ba gói Roslyn lúc biên dịch, được đóng gói sẵn bên trong gói NuGet Nalix.Abstractions dưới analyzers/dotnet/cs (nên mọi dự án tham chiếu bất kỳ gói Nalix nào đều tự động có phân tích và sinh mã lúc biên dịch):

GóiVai tròThành phần chính
Nalix.AnalyzersÁp dụng 67 quy tắc analyzer lúc biên dịch (NALIX001–NALIX078, NALIX100–NALIX107) cho gói tin, handler, tuần tự hóa, contract RPC, bảo mật và quyền sở hữu bộ đệmNalixUsageAnalyzer, DiagnosticDescriptors
Nalix.Analyzers.CodeFixesCung cấp 16 nhà cung cấp quick-fix cho IDE, xử lý 20 chẩn đoán analyzer đang hoạt độngPacketOpcodeCodeFixProvider, SerializeOrderMissingCodeFixProvider, ResetForPoolCodeFixProvider, v.v.
Nalix.Analyzers.GeneratorsSinh mã C# không dùng reflection lúc biên dịch qua 7 source generator (cùng 8 chẩn đoán generator NALIX059–NALIX068)PacketHandlerGenerator, InstanceGenerator, SerializeFormatterGenerator, PacketRegistryGenerator, PacketSchemaGenerator, ConfigurationGenerator, RpcClientGenerator

Bộ gói tối thiểu theo loại dự án

Vai trò dự ánGói NuGet khuyến nghị
Máy chủ được host (khuyến nghị)Nalix.Hosting
Máy chủ thủ công (khởi tạo tùy chỉnh)Nalix.Network, Nalix.Runtime, Nalix.Framework, Nalix.Codec, Nalix.Environment, Nalix.Abstractions
Ứng dụng clientNalix.SDK
Thư viện contract dùng chungNalix.Abstractions, Nalix.Codec

Trang tham chiếu gói