SharpMud.Hosting 0.1.0-alpha.13

This is a prerelease version of SharpMud.Hosting.
dotnet add package SharpMud.Hosting --version 0.1.0-alpha.13
                    
NuGet\Install-Package SharpMud.Hosting -Version 0.1.0-alpha.13
                    
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="SharpMud.Hosting" Version="0.1.0-alpha.13" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SharpMud.Hosting" Version="0.1.0-alpha.13" />
                    
Directory.Packages.props
<PackageReference Include="SharpMud.Hosting" />
                    
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 SharpMud.Hosting --version 0.1.0-alpha.13
                    
#r "nuget: SharpMud.Hosting, 0.1.0-alpha.13"
                    
#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 SharpMud.Hosting@0.1.0-alpha.13
                    
#: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=SharpMud.Hosting&version=0.1.0-alpha.13&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=SharpMud.Hosting&version=0.1.0-alpha.13&prerelease
                    
Install as a Cake Tool

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 against net10.0 only 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 with docs/engine-vs-ruleset.md for the entity model (Thing/Behavior composition), 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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