Protocol Buffers Schema (proto3)
A proto3 Protocol Buffers schema with messages, an enum, and a repeated field — for testing protobuf compilers (protoc), codegen, and schema tooling.
syntax = "proto3";
package novus.example.v1;
// A tiny example schema for testing protobuf tooling and codegen.
message User {
int64 id = 1;
string name = 2;
string email = 3;
Role role = 4;
}
enum Role {
ROLE_UNSPECIFIED = 0;
ROLE_ADMIN = 1;
ROLE_MEMBER = 2;
ROLE_GUEST = 3;
}
message ListUsersRequest {
int32 page = 1;
int32 page_size = 2;
}
message ListUsersResponse {
int32 page = 1;
int32 total = 2;
repeated User items = 3;
}
Specifications
- Format
- Protocol Buffers (proto3)
- Messages
- 3
- Enum
- Role
What is a .proto file?
Proto files define Protocol Buffers schemas, Google's language-neutral interface definition language for serializing structured data. They declare typed messages, fields, and services that a compiler turns into efficient binary serialization code in many languages. They underpin gRPC and high-performance data interchange.
How to use this file
Use an example proto file to test schema parsers, code generation across languages, and gRPC service or message-definition tooling.
How to use this file for testing
“Protocol Buffers Schema (proto3)” is a deterministic Novus Examples fixture for API testing, Conversion testing. OpenAPI/Swagger specs, GraphQL SDL, JSON Schema, paginated and problem+json error payloads, and webhook samples — for testing API clients, mock servers, contract tests, and schema validators.
Documented properties for this file: 3 messages · Protocol Buffers (proto3). Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Data fixtures document their exact quirks — delimiters, encodings, null handling, schema, and row counts — in the spec table. Point your parser or importer at the file and assert it handles the documented edge cases; clean and deliberately-messy siblings make before/after diffs straightforward.
Related files
- jsonAPI Error — 404 (RFC 9457 problem+json)A 404 error body in RFC 9457 (problem+json) form, with type, title, status, detail, and instance — for testing structured error handling and problem-detail parsers.

- jsonAPI Error — 422 Validation (JSON)A 422 validation-error response with a machine-readable list of field errors — for testing form-validation surfacing and error mapping.

- jsonAPI Response — Users Page 1 (JSON)Page 1 of a paginated JSON API response (users), with page metadata and a `hasMore` flag. Paired with page 2 for testing pagination and infinite-scroll logic.

- jsonAPI Response — Users Page 2 (JSON)Page 2 (the final page) of a paginated JSON API response. Paired with page 1 for testing pagination, `hasMore` handling, and list merging.

- graphqlGraphQL Schema (SDL)A GraphQL Schema Definition Language (SDL) file with queries, a mutation, object/input types, and an enum — for testing GraphQL schema parsers, linters, and code generators.

- jsonOpenAPI 3.1 Spec (JSON)A small but complete OpenAPI 3.1 description (two paths, three schemas) in JSON — for testing API tooling, mock servers, client codegen, and docs generators.

Generated by generation/data_dev_fixtures.py. Free for any use, no attribution required — license.