- Home
- Schema Registry Software
- Raystack Stencil
Raystack Stencil
What it is
Raystack Stencil is a free, open-source schema registry for teams that need shared definitions across producers, consumers, developers, and other users. It manages Protobuf, Avro, and JSON schemas, storing versioned proto descriptor history by namespace and name. Uploads receive backward-compatibility checks by default, while some checks may be skipped; supported compatibility modes include backward, forward, and full. APIs can return the latest version for a name and namespace or download a fully contained descriptor for a specified Protobuf message. The server offers REST, gRPC, and HTTP interfaces, while a CLI can create, view, and search schemas. Listed clients for Java, Go, JavaScript, and Clojure can download descriptor sets, deserialize Protobuf messages, find descriptors, and refresh definitions with built-in strategies. Stencil can run self-hosted from Docker or source, with installation options for macOS, Windows, Linux, OpenBSD, and FreeBSD. PostgreSQL 13 is required for the server, and Apache-2.0 is the repository license.
For and against
For
- Supports Protobuf, Avro, and JSON schemas
- Versioned descriptor history by namespace and name
- Backward checks enabled by default
- CLI creates, views, and searches schemas
- Java, Go, JavaScript, and Clojure clients
Against
- Server requires PostgreSQL 13
- Self-hosted deployment is required
- Unknown-field refresh is limited to Java and Go
The verdict
Stencil provides registry, validation, compatibility checks, descriptor APIs, and client libraries in one open-source package. Its PostgreSQL server requirement and self-hosted setup matter when planning deployment.
Who it suits
Stencil suits teams managing shared schemas across applications and services. It fits users who can operate a self-hosted server and work with its listed client languages.
On the record
- CLI
- The CLI can create, view, and search schemas through the server.github.com · read 5 Oct 2026
- Client features
- Clients can download descriptor set files, deserialize Protobuf encoded messages, look up proto descriptors, and refresh schema definitions using built-in strategies.raystack.github.io · read 4 Oct 2026
- Client languages
- Official clients are supported for Java, Go, and JavaScript, with Clojure also listed among the client languages.raystack.github.io · read 4 Oct 2026
- Client libraries
- The repository lists Java, Go, JavaScript, and Clojure clients, with Ruby and Python marked as coming soon.github.com · read 5 Oct 2026
- Client refresh limitation
- Refreshing a descriptor file only when a client encounters unknown fields is currently supported by the Java and Go clients.raystack.github.io · read 4 Oct 2026
- Compatibility
- Stencil enforces backward compatibility checks on upload by default and allows some checks to be skipped.raystack.github.io · read 4 Oct 2026
- Compatibility checks
- Uploads are checked for backward compatibility by default, with an option to skip some checks.github.com · read 5 Oct 2026
- Deployment
- Stencil can be run as a server and is distributed as cross-platform binaries and Docker images.github.com · read 5 Oct 2026
- Descriptor downloads
- Users can download proto descriptor files from Stencil.github.com · read 5 Oct 2026
- Installation platforms
- The README lists macOS, Windows, Linux, OpenBSD, and FreeBSD installation options.github.com · read 5 Oct 2026
- Intended users
- The project describes its users as developers who create, manage, and consume schemas across applications.github.com · read 5 Oct 2026
- License
- The repository is published under the Apache-2.0 license.github.com · read 5 Oct 2026
- Metadata API
- A metadata API retrieves the latest version number for a given name and namespace.github.com · read 5 Oct 2026
- Purpose
- Stencil is a schema registry for managing and validating schemas to maintain data compatibility across applications.github.com · read 5 Oct 2026
- Schema formats
- It supports Protobuf, Avro, and JSON schemas.github.com · read 5 Oct 2026
- Server APIs
- The server provides gRPC and HTTP APIs for interacting with Stencil.github.com · read 5 Oct 2026
- Server interfaces
- The server provides REST access for storing and retrieving Protobuf file descriptors and the repository README also describes gRPC and HTTP APIs.raystack.github.io · read 4 Oct 2026
- Server requirement
- The server documentation lists PostgreSQL 13 as a requirement.raystack.github.io · read 4 Oct 2026