Skip to content
View marcschier's full-sized avatar

Block or report marcschier

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
marcschier/README.md

πŸ“š Open-source .NET libraries & tools

A collection of public, NativeAOT-ready building blocks for modern .NET β€” secure transport, messaging, scalability protocols, consensus, replication, and file access β€” plus a couple of Model Context Protocol (MCP) servers.

NuGet packages Target frameworks NativeAOT


πŸ€– MCP servers

Model Context Protocol servers. These ship as container images and/or .NET tools rather than reusable nuget.org libraries.

🏭 opcuakb-mcp

An OPC UA Knowledge Base MCP server that crawls and indexes the OPC UA specification for retrieval-augmented tooling.

  • Distributed as a GHCR container image: docker pull ghcr.io/marcschier/opcua-mcp-server
  • Also published as the OpcUaKb.McpServer .NET tool to GitHub Packages.

πŸ•ΈοΈ netcap-mcp

An MCP server that captures network traces (pcap/http) and returns them as pcap, pcapng, JSON, CSV, or text.

  • The MCP server (Netcap.Mcp) is published as a .NET tool to GitHub Packages, with a container image built from the in-repo Dockerfile.

πŸ“¦ NuGet libraries

πŸ“¨ mqtt-client

High-performance, low-allocation MQTT 3.1.1 + 5.0 client for .NET. Channels-style API, NativeAOT-ready.

Package Version Downloads
Mqtt.Client v dt

🧬 crdt

High-performance, NativeAOT-ready Conflict-free Replicated Data Types (CRDTs) for modern .NET β€” the aggregating stack that ties the transports and consensus together.

Package Version Downloads
Crdt v dt
Crdt.Consensus v dt
Crdt.Consensus.Raft v dt
Crdt.Gc v dt
Crdt.Transport v dt
Crdt.Transport.Dtls v dt
Crdt.Transport.Mqtt v dt
Crdt.Transport.NanoMsg v dt
Crdt.Transport.Pgm v dt

πŸ”Œ nanomsg-sharp

A pure, modern .NET implementation of the nanomsg and NNG Scalability Protocols (SP) β€” wire-compatible with both, with a zero-copy System.IO.Pipelines data path.

Package Version Downloads
NanoMsgSharp v dt
NanoMsgSharp.Dtls v dt

πŸ—³οΈ raft-cs

Pure-managed, NativeAOT-ready Raft consensus for .NET (modeled on tikv/raft-rs) with replaceable storage and transport.

Package Version Downloads
RaftCs v dt
RaftCs.Transport v dt
RaftCs.Transport.NanoMsg v dt
RaftCs.Storage.File v dt

πŸ—‚οΈ nfs

A modern, NativeAOT-ready .NET 10 NFS client & server library (ONC/RPC + XDR) supporting NFS v2 / v3 / v4.0 / 4.1 / 4.2 β€” built for protocol compliance and interop.

Package Version Downloads
Nfs v dt

ℹ️ Nfs is a consolidated umbrella package; the granular Nfs.* assemblies are published to GitHub Packages.

πŸ“‘ pgm

Pure-managed, NativeAOT-ready PGM (RFC 3208) reliable multicast over UDP for modern .NET.

Package Version Downloads
Pgm v dt

πŸ” dtls

Cross-platform DTLS 1.0 / 1.2 / 1.3 for .NET using the host OS cryptography β€” a managed, AOT-friendly 1.3 engine plus native OpenSSL / Schannel / Apple backends.

Package Version Downloads
DtlsSharp v dt

🧭 Repo dependencies

All cross-repository links are via published NuGet packages (no source coupling), each repo produces a core nuget without any dependencies to other nugets produced from other repositories. Extension libraries pull in nugets from other repositories to extend the functionality of the core nuget:

Project Extensions depend on Via package(s)
🧬 crdt raft-cs, nanomsg-sharp, dtls, pgm, mqtt-client RaftCs, RaftCs.Transport, NanoMsgSharp, DtlsSharp, Pgm, Mqtt.Client
πŸ—³οΈ raft-cs nanomsg-sharp NanoMsgSharp (RaftCs.Transport.NanoMsg)
πŸ”Œ nanomsg-sharp dtls DtlsSharp (NanoMsgSharp.Dtls)
πŸ“¨ mqtt-client Β· πŸ“‘ pgm Β· πŸ” dtls Β· πŸ—‚οΈ nfs β€” standalone
🏭 opcuakb-mcp Β· πŸ•ΈοΈ netcap-mcp β€” standalone

The libraries are layered: lower-level transports and consensus are independent packages that the higher-level CRDT stack composes. An arrow A β†’ B means A depends on B (consumes B's NuGet package).

graph TD
    crdt["🧬 crdt"] -->|RaftCs| raftcs["πŸ—³οΈ raft-cs"]
    crdt -->|NanoMsgSharp| nanomsg["πŸ”Œ nanomsg-sharp"]
    crdt -->|DtlsSharp| dtls["πŸ” dtls"]
    crdt -->|Pgm| pgm["πŸ“‘ pgm"]
    crdt -->|Mqtt.Client| mqtt["πŸ“¨ mqtt-client"]
    raftcs -->|NanoMsgSharp| nanomsg
    nanomsg -->|DtlsSharp| dtls

    nfs["πŸ—‚οΈ nfs"]
    opcuakb["🏭 opcuakb-mcp"]
    netcap["πŸ•ΈοΈ netcap-mcp"]

    classDef standalone fill:#f6f8fa,stroke:#999,stroke-dasharray:4 3,color:#333;
    class nfs,opcuakb,netcap standalone;
Loading

Dashed nodes (nfs, opcuakb-mcp, netcap-mcp) are standalone β€” they have no dependencies on the other projects here.

Pinned Loading

  1. crdt crdt Public

    High-performance, NativeAOT-ready Conflict-free Replicated Data Types (CRDTs) for modern .NET.

    C#

  2. mqtt-client mqtt-client Public

    High-performance, low-allocation MQTT 3.1.1 + 5.0 client for .NET. Channels-style API, NativeAOT-ready.

    C#

  3. nfs nfs Public

    A modern, NativeAOT-ready .NET 10 NFS client & server library (ONC/RPC + XDR) supporting NFS v2/v3/v4.0/4.1/4.2 β€” built for protocol compliance and interop.

    C#

  4. opcuakb-mcp opcuakb-mcp Public

    OPC UA Knowledge base MCP

    C# 2

  5. pgm pgm Public

    Pure-managed, NativeAOT-ready PGM (RFC 3208) reliable multicast over UDP for modern .NET

    C#

  6. nanomsg-sharp nanomsg-sharp Public

    A pure, modern .NET implementation of the nanomsg and NNG Scalability Protocols (SP) - wire-compatible with both, with a zero-copy System.IO.Pipelines data path.

    C#