Packages
Bowire is distributed as a set of NuGet packages with clear dependency relationships.
Package Diagram
graph TD
TOOL["Bowire<br/>dotnet tool"] --> CORE
TOOL --> GRPC
TOOL --> SIG
TOOL --> SSE2["Kuestenlogik.Bowire.Protocol.Sse"]
TOOL --> MCP2["Kuestenlogik.Bowire.Protocol.Mcp"]
CORE["Kuestenlogik.Bowire<br/>Core + UI"]
GRPC["Kuestenlogik.Bowire.Protocol.Grpc"] --> CORE
SIG["Kuestenlogik.Bowire.Protocol.SignalR"] --> CORE
SSE2 --> CORE
MCP2 --> CORE
style CORE fill:#6366f1,color:#fff
Package Details
Kuestenlogik.Bowire
The core package. Contains:
- Browser UI (HTML, CSS, JS embedded as static web assets)
IBowireProtocolandIBowireChannelinterfacesBowireProtocolRegistryfor plugin discoveryBowireOptionsfor configurationMapBowire()extension method- API endpoint handlers
- Model types (
BowireServiceInfo,InvokeResult, etc.)
This is the only required package. Install protocol plugins separately based on which protocols you need.
Kuestenlogik.Bowire.Protocol.Grpc
gRPC protocol plugin. Depends on Kuestenlogik.Bowire and Grpc.Reflection. Provides:
BowireGrpcProtocol-- service discovery via gRPC Server Reflection- Protobuf schema parsing for auto-generated request templates
- All four gRPC call types (unary, server streaming, client streaming, duplex)
IBowireChannelimplementation for duplex/client-streaming
Kuestenlogik.Bowire.Protocol.SignalR
SignalR protocol plugin. Depends on Kuestenlogik.Bowire and Microsoft.AspNetCore.SignalR.Client. Provides:
BowireSignalRProtocol-- hub discovery via endpoint metadata scanning- CLR type reflection for parameter and return type detection
- Streaming direction inference from
IAsyncEnumerable<T>andChannelReader<T> IBowireChannelimplementation for duplex hubs
Kuestenlogik.Bowire.Protocol.Sse
SSE protocol plugin. Depends on Kuestenlogik.Bowire. Provides:
BowireSseProtocol-- endpoint discovery via attributes and metadataSseEndpointAttributefor marking SSE endpointsAddBowireSseEndpoint()for fluent registrationSseSubscriberfor connecting to SSE endpoints and parsing events
Kuestenlogik.Bowire.Protocol.Mcp
MCP protocol plugin. Depends on Kuestenlogik.Bowire. Provides:
BowireMcpProtocol-- protocol marker for MCP supportMcpServer-- JSON-RPC 2.0 server implementinginitialize,tools/list,tools/call,ping- SSE transport endpoint for AI agent connections
- Auto-conversion of discovered unary methods to MCP tools with JSON Schema
Bowire (dotnet tool)
The standalone CLI tool. Packages all protocol plugins into a single global tool:
dotnet tool install -g Kuestenlogik.Bowire.Tool
Provides both browser UI mode (bowire --url) and CLI mode (bowire list/describe/call).
Versioning
All packages share the same version number and are released together. The version follows SemVer 2.0.
See also: Architecture Overview, Plugin Architecture