Sekiban.Dcb.WasmRuntime 1.0.0-preview.1

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

SekibanWasmRuntime Preview Packages

SekibanWasmRuntime provides preview packages for running Sekiban DCB projection logic through WebAssembly contracts.

These packages are published as 1.0.0-preview.* while the public runtime contract, package split, and Wasmtime host policy are finalized.

Package Selection

Install Sekiban.Dcb.WasmRuntime when you need the shared runtime contracts, projection abstractions, serialized command/query DTOs, and in-process client abstractions.

Install Sekiban.Dcb.WasmRuntime.Remote when your application talks to a remote serialized Sekiban DCB runtime over HTTP.

Install Sekiban.Dcb.WasmRuntime.Wasmtime when you host WASM projections in-process with Wasmtime. This package is part of the initial preview matrix and may carry preview Wasmtime dependency behavior while the host integration is stabilized.

Wasmtime Preview Caveat

Sekiban.Dcb.WasmRuntime.Wasmtime is a preview-only package in this release line. It currently depends on the Wasmtime package version 14.0.0 for runtime/native assets, with Compile, Build, and Analyzers excluded in the generated nuspec, while compiling against the managed Wasmtime source pinned in this repository. Treat that dependency shape as provisional until the Wasmtime host policy is finalized.

Package inspection is required before any publish. On macOS, the inspected 1.0.0-preview.1 package includes libwasmtime.dylib under both content/ and contentFiles/any/net10.0/; Linux and Windows package candidates must be packed and inspected on their release build environments so the expected native asset for that platform is present. Do not treat this package as stable or platform-complete without that inspection evidence.

Install

Install the preview packages with prerelease resolution enabled:

dotnet add package Sekiban.Dcb.WasmRuntime --prerelease
dotnet add package Sekiban.Dcb.WasmRuntime.Remote --prerelease
dotnet add package Sekiban.Dcb.WasmRuntime.Wasmtime --prerelease

Most applications install only the package for their runtime boundary. Use the core package for shared contracts, add the remote package in HTTP clients, and add the Wasmtime package in API services that host projection modules in-process.

Before publication, release readiness restores and builds a generated consumer project against locally packed .nupkg files for this package matrix. That smoke uses exact preview versions so broken package IDs, missing package files, or invalid package dependency references fail before publishing. See ../quickstart.md for package selection guidance and ../release/nuget-preview-release.md for the release gate.

Minimal Usage

Core runtime consumers depend on ISerializedDcbClient so the application code can use the same serialized DCB path for in-process and remote transports:

using Sekiban.Dcb.WasmRuntime;

public sealed class ProjectionReader(ISerializedDcbClient client)
{
    public Task<ResultBoxes.ResultBox<Sekiban.Dcb.Tags.SerializableTagState>> ReadAsync(
        Sekiban.Dcb.Tags.TagStateId tagStateId) =>
        client.GetSerializableTagStateAsync(tagStateId);
}

Remote clients use HttpSerializedDcbClient with the serialized endpoint base URL exposed by the API service:

using System.Text.Json;
using Sekiban.Dcb.WasmRuntime;
using Sekiban.Dcb.WasmRuntime.Remote;

ISerializedDcbClient client = new HttpSerializedDcbClient(
    new HttpClient(),
    new SerializedDcbClientOptions { BaseUrl = "https://localhost:5001" },
    new JsonSerializerOptions(JsonSerializerDefaults.Web));

Wasmtime hosts register the in-process projection host and then enable the WASM tag-state runtime after registering domain event types, JSON options, and a WasmProjectorRegistry:

using Sekiban.Dcb.WasmRuntime;
using Sekiban.Dcb.WasmRuntime.Wasmtime;

services.AddWasmtimeProjectionHost(options =>
{
    options.DefaultModulePath = "modules/projection.wasm";
});

services.AddWasmTagStateRuntime(options =>
{
    options.Mode = WasmRuntimeMode.Wasm;
});

License

SekibanWasmRuntime is licensed under Elastic License 2.0. You may use, modify, redistribute, and self-host SekibanWasmRuntime, including for internal company use. You may not provide SekibanWasmRuntime to third parties as a hosted service, managed service, SaaS, or similar offering that gives users access to a substantial set of its features, unless a separate commercial license has been agreed with J-Tech Japan.

Sekiban itself remains available under Apache License 2.0. The license for this repository does not change upstream Sekiban package or submodule terms.

Repository

Source, issue tracking, and release notes are maintained at https://github.com/J-Tech-Japan/SekibanWasmRuntime.

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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Sekiban.Dcb.WasmRuntime:

Package Downloads
Sekiban.Dcb.WasmRuntime.Remote

Sekiban DCB WASM runtime remote HTTP runner client

Sekiban.Dcb.WasmRuntime.Wasmtime

Sekiban DCB WASM runtime Wasmtime in-process host

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-preview.1 82 6/23/2026

Initial preview package baseline for Sekiban DCB WASM runtime packages.