SharpMud.Hosting
0.1.0-alpha.13
dotnet add package SharpMud.Hosting --version 0.1.0-alpha.13
NuGet\Install-Package SharpMud.Hosting -Version 0.1.0-alpha.13
<PackageReference Include="SharpMud.Hosting" Version="0.1.0-alpha.13" />
<PackageVersion Include="SharpMud.Hosting" Version="0.1.0-alpha.13" />
<PackageReference Include="SharpMud.Hosting" />
paket add SharpMud.Hosting --version 0.1.0-alpha.13
#r "nuget: SharpMud.Hosting, 0.1.0-alpha.13"
#:package SharpMud.Hosting@0.1.0-alpha.13
#addin nuget:?package=SharpMud.Hosting&version=0.1.0-alpha.13&prerelease
#tool nuget:?package=SharpMud.Hosting&version=0.1.0-alpha.13&prerelease
sharp-mud
<table> <tr> <td><img src="icon.png" width="140" alt="sharp-mud icon" /></td> <td>
____ _ __ __ _ _ ____
/ ___|| |__ __ _ _ __ _ __ | \/ | | | | _ \
\___ \| '_ \ / _` | '__| '_ \| |\/| | | | | | | |
___) | | | | (_| | | | |_) | | | | |_| | |_| |
|____/|_| |_|\__,_|_| | .__/|_| |_|\___/|____/
|_|
</td> </tr> </table>
A modern C#/.NET reimagining of a classic MUD (Multi-User Dungeon) — faithful to the genre's feel while built with current .NET architecture.
Alpha — not yet stable. Pre-1.0, no SemVer compatibility guarantees between releases yet; APIs, package boundaries, and persisted-data shape can all still change. Also currently pinned to a preview .NET 11 SDK (see
global.json) — accept that risk, or build againstnet10.0only until a stable release lands. Use it, but expect breaking changes.
SPEC.md— vision and high-level decisions (start here).docs/— detailed per-subsystem design docs. Start withdocs/engine-vs-ruleset.mdfor the entity model (Thing/Behaviorcomposition), then architecture, world model, character, commands, combat, persistence, networking, accounts/auth.
Solution layout
SharpMud.slnx
src/
SharpMud.Engine/ # Thing/Behavior, events, generic behaviors,
# command pipeline, session, tick loop.
# Zero deps on any ruleset.
SharpMud.Hosting/ # generic-host composition helpers, ruleset-agnostic
SharpMud.Persistence/ # EF Core repositories, provider-agnostic
SharpMud.Persistence.Sqlite/ # SQLite provider
SharpMud.Persistence.DynamoDb/ # DynamoDB provider
SharpMud.Adapters.Cli/ # local stdin/stdout session adapter
SharpMud.Adapters.Telnet/ # raw TCP session adapter + listener
SharpMud.Ruleset.Rpg/ # reusable RPG combat/encounter scaffolding (ADR-0008)
SharpMud.Ruleset.Basic/ # minimal concrete leaf ruleset built on Ruleset.Rpg (ADR-0008)
SharpMud/ # meta-package (Engine + Hosting + Persistence only - ADR-0007)
samples/
SharpMud.Samples.Classic/ # D&D-flavored sample ruleset + composition root
tests/
SharpMud.Engine.Tests/
SharpMud.Hosting.Tests/
SharpMud.Persistence.Tests/
SharpMud.Adapters.Cli.Tests/
SharpMud.Adapters.Telnet.Tests/
SharpMud.Ruleset.Rpg.Tests/
SharpMud.Ruleset.Basic.Tests/
SharpMud.Samples.Classic.Tests/
Building & testing
dotnet build SharpMud.slnx
dotnet test SharpMud.slnx
Running
dotnet run --project samples/SharpMud.Samples.Classic # local single-player CLI
dotnet run --project samples/SharpMud.Samples.Classic -- --telnet [port] # telnet server, default port 4000
Using SharpMud as a library
src/ publishes as NuGet packages (SharpMud.Engine, SharpMud.Hosting,
SharpMud.Persistence(.Sqlite/.DynamoDb), SharpMud.Adapters.Cli/
.Telnet, SharpMud.Ruleset.Rpg/.Basic), plus a SharpMud meta-package
pulling in the engine-level core (Engine/Hosting/Persistence) — you
still add a persistence provider, a transport, and a ruleset explicitly, per
ADR-0007. See
docs/getting-started.md for the fastest path to a
running game (SharpMud.Ruleset.Basic) or building your own ruleset on
SharpMud.Ruleset.Rpg's combat scaffolding.
samples/SharpMud.Samples.Classic is a full, richer reference consumer —
see how a ruleset composes against the packages. See
ADR-0006 for the design.
Containerized
docker build -t sharpmud .
docker run -p 4000:4000 sharpmud # telnet server (container default)
See docs/deployment.md for runtime configuration (env vars, mode selection) and current limitations.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. net11.0 is compatible. |
-
net10.0
- LayeredCraft.StructuredLogging (>= 1.2.3)
- Microsoft.Extensions.Hosting (>= 10.0.10 && < 11.0.0)
- Microsoft.Extensions.Identity.Core (>= 10.0.10 && < 11.0.0)
- SharpMud.Engine (>= 0.1.0-alpha.13)
-
net11.0
- LayeredCraft.StructuredLogging (>= 1.2.3)
- Microsoft.Extensions.Hosting (>= 11.0.0-preview.6.26359.118 && < 12.0.0-a)
- Microsoft.Extensions.Identity.Core (>= 11.0.0-preview.6.26359.118 && < 12.0.0-a)
- SharpMud.Engine (>= 0.1.0-alpha.13)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on SharpMud.Hosting:
| Package | Downloads |
|---|---|
|
SharpMud
Meta-package for sharp-mud - pulls in SharpMud.Engine, SharpMud.Hosting, and SharpMud.Persistence. Add a persistence provider (SharpMud.Persistence.Sqlite or .DynamoDb) and a transport (SharpMud.Adapters.Cli and/or .Telnet) explicitly. See https://github.com/LayeredCraft/sharp-mud for getting started. |
|
|
SharpMud.Adapters.Telnet
Raw TCP Telnet ISession transport for SharpMud - AddSharpMudTelnetTransport(port), real IAC option negotiation (Echo/NAWS), and the username/password login flow. |
|
|
SharpMud.Adapters.Cli
Local stdin/stdout ISession transport for SharpMud - AddSharpMudCliTransport(), login-free single-player. |
|
|
SharpMud.Ruleset.Rpg
Reusable RPG scaffolding between SharpMud.Engine and a concrete ruleset - CombatantBehavior, combat resolution/encounter tracking, attack/flee commands, and a dice-rolling abstraction over IRandomSource. |
|
|
SharpMud.Ruleset.Basic
Minimal, deliberately simple concrete ruleset built on SharpMud.Ruleset.Rpg - a plain numeric stat block, a small default world with a fightable NPC, and AddSharpMudBasicRuleset(...) for a true "dotnet add package, few lines in Program.cs, run a basic game" quick-start. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-alpha.13 | 26 | 7/24/2026 |
| 0.1.0-alpha.12 | 23 | 7/24/2026 |
| 0.1.0-alpha.11 | 34 | 7/23/2026 |
| 0.1.0-alpha.10 | 31 | 7/23/2026 |
| 0.1.0-alpha.9 | 34 | 7/23/2026 |
| 0.1.0-alpha.8 | 35 | 7/22/2026 |
| 0.1.0-alpha.7 | 35 | 7/22/2026 |
| 0.1.0-alpha.6 | 41 | 7/21/2026 |
| 0.1.0-alpha.4 | 34 | 7/21/2026 |
| 0.1.0-alpha.3 | 34 | 7/21/2026 |
| 0.1.0-alpha.1 | 36 | 7/21/2026 |
| 0.0.1-alpha.2 | 33 | 7/21/2026 |