Raystack Stencil
github.com
What it is
Raystack Stencil is a schema registry for managing schema definitions and checking data compatibility across applications. It supports Protobuf, Avro, and JSON, and keeps versioned histories of proto descriptor files organized by namespace and name. Uploads receive backward-compatibility checks by default, though some checks can be skipped. The service provides APIs for retrieving the latest version number for a schema name and namespace and downloading the proto descriptors contained in a specified message. Its server offers gRPC and HTTP interfaces, while a CLI can create, view, and search schemas. Listed client libraries cover Java, Go, JavaScript, and Clojure. Clients can download descriptor sets, deserialize Protobuf messages, look up descriptors, and refresh schema definitions with built-in strategies. Stencil can run from a Docker image or be compiled from source, with installation options for macOS, Windows, Linux, OpenBSD, and FreeBSD. The server requires PostgreSQL 13. Refreshing a descriptor after encountering unknown fields is supported only by the Java and Go clients. The project is open source under Apache-2.0.
Spec sheet
- Purpose
- Stencil is a schema registry for managing and validating schemas to maintain data compatibility across applications.Read 5 Oct 2026 · github.com
- Intended users
- The project describes its users as developers who create, manage, and consume schemas across applications.Read 5 Oct 2026 · github.com
- Deployment
- Stencil can be run as a server and is distributed as cross-platform binaries and Docker images.Read 5 Oct 2026 · github.com
- License
- The repository is published under the Apache-2.0 license.Read 5 Oct 2026 · github.com
- CLI
- The CLI can create, view, and search schemas through the server.Read 5 Oct 2026 · github.com
- Client features
- Clients can download descriptor set files, deserialize Protobuf encoded messages, look up proto descriptors, and refresh schema definitions using built-in strategies.Read 4 Oct 2026 · raystack.github.io
- Client languages
- Official clients are supported for Java, Go, and JavaScript, with Clojure also listed among the client languages.Read 4 Oct 2026 · raystack.github.io
- Client libraries
- The repository lists Java, Go, JavaScript, and Clojure clients, with Ruby and Python marked as coming soon.Read 5 Oct 2026 · github.com
- Client refresh limitation
- Refreshing a descriptor file only when a client encounters unknown fields is currently supported by the Java and Go clients.Read 4 Oct 2026 · raystack.github.io
- Compatibility
- Stencil enforces backward compatibility checks on upload by default and allows some checks to be skipped.Read 4 Oct 2026 · raystack.github.io
- Compatibility checks
- Uploads are checked for backward compatibility by default, with an option to skip some checks.Read 5 Oct 2026 · github.com
- Descriptor downloads
- Users can download proto descriptor files from Stencil.Read 5 Oct 2026 · github.com
- Installation platforms
- The README lists macOS, Windows, Linux, OpenBSD, and FreeBSD installation options.Read 5 Oct 2026 · github.com
- Metadata API
- A metadata API retrieves the latest version number for a given name and namespace.Read 5 Oct 2026 · github.com
- Schema formats
- It supports Protobuf, Avro, and JSON schemas.Read 5 Oct 2026 · github.com
- Server APIs
- The server provides gRPC and HTTP APIs for interacting with Stencil.Read 5 Oct 2026 · github.com
- Server interfaces
- The server provides REST access for storing and retrieving Protobuf file descriptors and the repository README also describes gRPC and HTTP APIs.Read 4 Oct 2026 · raystack.github.io
- Server requirement
- The server documentation lists PostgreSQL 13 as a requirement.Read 4 Oct 2026 · raystack.github.io
- Supported formats
- Stencil supports Protobuf, Avro, and JSON formats.Read 4 Oct 2026 · raystack.github.io
- Version history
- Stencil stores versioned history of proto descriptor files by namespace and name.Read 5 Oct 2026 · github.com
Strong points and limits
Strong points
- Supports Protobuf, Avro, and JSON schemas
- Keeps versioned proto descriptor history
- Checks backward compatibility on uploads by default
- Offers gRPC, HTTP, and CLI interfaces
- Open source under Apache-2.0
Limits
- Server requires PostgreSQL 13
- Unknown-field refresh is limited to Java and Go clients
- Self-hosted deployment
Who it suits
Stencil suits teams that need a shared source of schema definitions for producers, consumers, developers, and others. It is relevant to users working with Protobuf, Avro, or JSON schemas who need version history and compatibility checks.
Verdict
Stencil offers schema management across three formats, with version history, compatibility checks, and multiple ways to access the server. Its PostgreSQL requirement and client-specific refresh limitation are worth noting when evaluating deployment and client needs.
Where Specifiction places it
- Schema Registry Software#16 of 267.2