Router packages

The Stella Ops Router is a set of NuGet packages. A microservice author uses the client SDK and a client transport; a gateway operator runs the gateway tool or builds a gateway host from the gateway libraries and the server transports. This page lists which package serves which role and under which licence.

Install

Every package of a release is installed from the Stella Ops NuGet feed, https://nuget.stella-ops.org/v3/index.json. Versions have the form x.y.z-yyyyMMddTHHmmssZ: the UTC timestamp is the release’s first publication, and NuGet treats the form as a prerelease, so an install names the version or passes --prerelease:

dotnet add package StellaOps.Microservice --prerelease

Every Router package of one release shares one version, built from one commit; install the Router packages of one version together. The consumer rules (feed, version form, verifying a package) are in the NuGet library release guide.

Packages by role

Microservice author

PackageLicenceWhat it is
StellaOps.Messaging.RateLimitingRouter licenceRate limiting for services behind a Router gateway: the limiter contract, the fixed-window rules and the limiter factory.
StellaOps.Messaging.RateLimiting.InMemoryRouter licenceIn-process rate limiter backend for StellaOps.Messaging.RateLimiting (for testing and development)
StellaOps.Messaging.RateLimiting.PostgresRouter licencePostgreSQL rate limiter backend for StellaOps.Messaging.RateLimiting
StellaOps.Messaging.RateLimiting.ValkeyRouter licenceValkey/Redis rate limiter backend for StellaOps.Messaging.RateLimiting
StellaOps.MicroserviceApache-2.0Microservice SDK for the Router: registers the endpoints of a service, connects it to a gateway over a Router transport and dispatches the requests it receives.
StellaOps.Microservice.AspNetCoreApache-2.0ASP.NET Core endpoint bridge for StellaOps Router SDK. Enables ASP.NET endpoints to be automatically registered and dispatched via the Router.
StellaOps.Microservice.SourceGen (analyzer)Apache-2.0Source generator for Stella microservice endpoints
StellaOps.Router.CommonApache-2.0Shared Router types: frames, endpoint descriptors, options and the transport and plugin contracts used by microservices, gateways and transports.
StellaOps.Router.Gateway.LocalInMemoryHarnessRouter licenceIn-process Router gateway harness for local development and tests: a gateway and its microservices in one process over the in-memory transport.
StellaOps.Router.Transport.InMemoryApache-2.0Router in-memory transport: connects microservices and a gateway inside one process, for development and tests.
StellaOps.Router.Transport.MessagingApache-2.0Router Messaging transport, client side: connects a microservice to a gateway through the request and response queues of a Messaging backend.
StellaOps.Router.Transport.RabbitMqApache-2.0Router RabbitMQ transport, client side: connects a microservice to a gateway through RabbitMQ queues.
StellaOps.Router.Transport.TcpApache-2.0Router TCP transport, client side: connects a microservice to a gateway over TCP.
StellaOps.Router.Transport.TlsApache-2.0Router TLS transport, client side: connects a microservice to a gateway over TLS, with client certificates.
StellaOps.Router.Transport.UdpApache-2.0Router UDP transport, client side: sends the frames of a microservice to a gateway as UDP datagrams.
StellaOps.Cryptography.AbstractionsApache-2.0Dependency-free Stella Ops cryptography contracts: keyed MAC by purpose, HMAC primitive, cryptographic random and asymmetric signature verification.
StellaOps.Cryptography.DefaultProviderApache-2.0Default HMAC-SHA-2, random and asymmetric signature verification (RS256, PS256, ES256) providers for the Stella Ops cryptography contracts, for hosts without the profile-aware library.
StellaOps.MessagingApache-2.0Transport-agnostic messaging abstractions for StellaOps (queues, caching, pub/sub)
StellaOps.Messaging.Transport.InMemoryApache-2.0In-memory transport plugin for StellaOps.Messaging (for testing)
StellaOps.Messaging.Transport.PostgresApache-2.0PostgreSQL transport plugin for StellaOps.Messaging (FOR UPDATE SKIP LOCKED pattern)
StellaOps.Messaging.Transport.ValkeyApache-2.0Valkey/Redis transport plugin for StellaOps.Messaging

Gateway operator or custom gateway host

PackageLicenceWhat it is
StellaOps.Router.CommonApache-2.0Shared Router types: frames, endpoint descriptors, options and the transport and plugin contracts used by microservices, gateways and transports.
StellaOps.Router.GatewayRouter licenceRouter gateway core: the routing state of connected microservices, request routing and dispatch, gateway rate limiting, and the gateway configuration loaded from JSON, YAML and environment variables.
StellaOps.Router.Gateway.Host (.NET tool)Router licenceRouter gateway host: routes HTTP requests to microservices over TCP, TLS, UDP, RabbitMQ and Messaging (Valkey), with JWT bearer authentication.
StellaOps.Router.Gateway.HostingRouter licenceRouter gateway host: transport hosting, endpoint claims authorization, health and the router administration endpoints.
StellaOps.Router.Gateway.RateLimiting.ValkeyRouter licenceValkey store for the environment-scope rate limit of StellaOps.Router.Gateway
StellaOps.Router.Transport.Messaging.ServerRouter licenceRouter Messaging transport, server side: the gateway request and response queues over a Messaging backend.
StellaOps.Router.Transport.RabbitMq.ServerRouter licenceRouter RabbitMQ transport, server side: the gateway queues and consumers.
StellaOps.Router.Transport.Tcp.ServerRouter licenceRouter TCP transport, server side: the listener a gateway accepts microservice connections with.
StellaOps.Router.Transport.Tls.ServerRouter licenceRouter TLS transport, server side: the listener a gateway accepts microservice connections with, with server certificate reload and client certificate validation.
StellaOps.Router.Transport.Udp.ServerRouter licenceRouter UDP transport, server side: the datagram listener a gateway receives microservice frames with.
StellaOps.Canonical.JsonApache-2.0Canonical JSON serialization (stella:canon:v1) and SHA-256 hashing for content-addressed identifiers.
StellaOps.Components.LicensingApache-2.0Offline verification and evaluation of vendor-signed component licence files. Informational only: never blocks, no network.
StellaOps.Cryptography.AbstractionsApache-2.0Dependency-free Stella Ops cryptography contracts: keyed MAC by purpose, HMAC primitive, cryptographic random and asymmetric signature verification.
StellaOps.Cryptography.DefaultProviderApache-2.0Default HMAC-SHA-2, random and asymmetric signature verification (RS256, PS256, ES256) providers for the Stella Ops cryptography contracts, for hosts without the profile-aware library.
StellaOps.MessagingApache-2.0Transport-agnostic messaging abstractions for StellaOps (queues, caching, pub/sub)
StellaOps.Messaging.Transport.PostgresApache-2.0PostgreSQL transport plugin for StellaOps.Messaging (FOR UPDATE SKIP LOCKED pattern)
StellaOps.Messaging.Transport.ValkeyApache-2.0Valkey/Redis transport plugin for StellaOps.Messaging
StellaOps.PluginApache-2.0Plugin hosting for .NET applications: plugin manifests, discovery, loading and version checks.

StellaOps.Router.Gateway.Host is a .NET tool (command stellaops-router-gateway); the gateway host guide runs it.

Plugin author

PackageLicenceWhat it is
StellaOps.Router.CommonApache-2.0Shared Router types: frames, endpoint descriptors, options and the transport and plugin contracts used by microservices, gateways and transports.
StellaOps.DependencyInjectionApache-2.0The service-registration routine contract (IDependencyInjectionRoutine) and the service binding attributes that hosts and plugins register services with.
StellaOps.MessagingApache-2.0Transport-agnostic messaging abstractions for StellaOps (queues, caching, pub/sub)
StellaOps.Messaging.Transport.ValkeyApache-2.0Valkey/Redis transport plugin for StellaOps.Messaging
StellaOps.PluginApache-2.0Plugin hosting for .NET applications: plugin manifests, discovery, loading and version checks.

Not packaged

StellaOps.Gateway.WebService (the Stella Ops gateway), StellaOps.Router.AspNet, StellaOps.Messaging.Plugins and StellaOps.Router.Plugins are used only inside Stella Ops hosts and are not published as packages.

Licences

Each package carries its licence file (LICENSE) and notice (NOTICE) and names its licence in its package metadata. A package under the Router licence carries the Stella Ops Router licence: the Business Source License 1.1 with the Router’s Additional Use Grant. An Apache-2.0 package carries the Apache License 2.0. The legal overview lists the licence texts and what each package carries, and the licensing guide describes the gateway’s licence monitor.

The Apache-2.0 packages carry this statement in their README:

The packages StellaOps.Canonical.Json, StellaOps.Components.Licensing, StellaOps.Cryptography.Abstractions, StellaOps.Cryptography.DefaultProvider, StellaOps.DependencyInjection, StellaOps.Messaging, StellaOps.Messaging.Transport.InMemory, StellaOps.Messaging.Transport.Postgres, StellaOps.Messaging.Transport.Valkey, StellaOps.Microservice, StellaOps.Microservice.AspNetCore, StellaOps.Microservice.SourceGen, StellaOps.Plugin, StellaOps.Router.Common, StellaOps.Router.Transport.InMemory, StellaOps.Router.Transport.Messaging, StellaOps.Router.Transport.RabbitMq, StellaOps.Router.Transport.Tcp, StellaOps.Router.Transport.Tls and StellaOps.Router.Transport.Udp are licensed under the Apache License, Version 2.0. They comprise the shared foundation packages, the general Messaging packages and the Router client packages (the client SDK, the client contracts and the client transports).

The Stella Ops Router gateway, the server transports and the rate-limiting packages, and the Stella Ops Workflow packages, are separate packages. They are licensed under the Business Source License 1.1 with the Additional Use Grant of the Router or Workflow licence. Those licences govern those separate packages only. They place no condition on the use of the Apache-licensed packages.

“Stella Ops” is a trading name of Е-САЛЮШЪНС ЕООД (e-Solutions EOOD). Use of the Licensor’s trade names and marks is governed by section 6 of the Apache License, Version 2.0. That section permits use as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

Published versions

The table lists each Router and shared foundation package that has a published version, with its latest version. It is generated from the package catalogue and the publication register; no version is published yet.

PackageLicenceLatest version