Public API and versioning
The stable 1.0 scope is gritz, gritz-core, gritz-native, gritz-rails and gritz-otel. gritz-async remains experimental: the continuous-load restart limitation prevents its promotion. Experimental fork_mode :grpc_fork_support is also outside the stable guarantee.
The API reference includes objects tagged @api public. YARD inherits this tag from a containing class or module; methods do not need duplicate tags. Explicit @api private and Ruby-private methods are implementation details. Runtime-generated configuration accessors, configuration-file setters/hooks and canonical error classes are generated into the reference from Configuration::DEFAULTS, Configuration::HOOKS and Errors::CODES.
| Surface | Supported entrypoints |
|---|---|
| Application handlers | Controller.bind, filters, rescue handlers, request, stream, context, fail! |
| Calls and errors | Call, Context, MethodDescriptor, Error, Errors.for_code and canonical error subclasses |
| Configuration | Configuration.load, validated settings, DSL settings/hooks, controller and middleware registration |
| Middleware | Middleware::Stack and the documented middleware call contract |
| Native transport and clients | Transport::Native, Client.define, client middleware and process-local ChannelRegistry |
| Process operation | CLI commands, documented signals, Admin routes and Supervisor::Master |
| Tests | Testing::Server, Testing::Cluster, RPC helpers and shared transport contracts |
| Integrations | Rails.install, rails_app, generators, Otel.install, opentelemetry |
| Gruf migration | Compat::Gruf::Controller, request/error compatibility and ServerInterceptor |
Configuration defaults, validation, documented CLI output contracts and lifecycle behavior are part of compatibility. The API reference provides individual methods; the configuration guide lists defaults and signal behavior. No deprecated public API currently requires removal.
Before 1.0, a breaking change requires a minor version increase and migration notes. After 1.0, removal or incompatible behavior in the stable public surface requires a major version; additions use a minor version and compatible fixes use a patch version. Implementation classes, private methods, benchmark JSON and experimental APIs may change without that guarantee. Dependency and supported-platform changes follow the support policy.
The 0.9 candidate inventory records public object names and method signatures for review. It also lists experimental Async references; those remain excluded from the stable guarantee above. The published site's public-api.txt reflects its checked-out sources.
The 0.9 series freezes this intended public surface for the four-week stabilization gate. A required breaking change restarts that gate after the revised 0.9 release. A release date does not substitute for completing the observation period.