This repo contains the BanyanDB public client Protocol Buffer / gRPC definitions, plus a small toolchain to:
- Sync protos from the upstream BanyanDB repo (
apache/skywalking-banyandb) - Normalize and merge upstream protos into a stable client-facing layout under
proto/banyandb/v1/ - Generate + compile Java from the synced protos to verify the sync is valid (also enforced in CI)
Protos are synced from the Apache SkyWalking BanyanDB repository:
- Repo:
apache/skywalking-banyandb - Path:
api/proto/banyandb/<module>/v1/*.proto
Locally, this repo maintains a consolidated, client-friendly layout:
proto/banyandb/v1/banyandb-common.protoproto/banyandb/v1/banyandb-database.protoproto/banyandb/v1/banyandb-measure.protoproto/banyandb/v1/banyandb-model.protoproto/banyandb/v1/banyandb-property.protoproto/banyandb/v1/banyandb-stream.protoproto/banyandb/v1/banyandb-trace.proto
These files are produced by scripts/sync_proto.py, which also rewrites imports to match the merged layout.
- Python: 3.x (for
scripts/sync_proto.py) - Java: JDK 17 (for compilation verification)
- Maven: use
./mvnw(recommended) or a systemmvn
If you use ./mvnw and hit a permission error, run:
chmod +x mvnwmake sync-proto-dry-runOr directly (with extra options):
python3 scripts/sync_proto.py --branch main --dry-runInteractive (asks for confirmation):
make sync-protoNon-interactive (useful in automation):
python3 scripts/sync_proto.py --branch main --forcepython3 scripts/sync_proto.py --branch main --module common --module measure --forceValid modules are: common, database, measure, model, property, stream, trace.
Run the workflow “Sync Proto Files” (.github/workflows/sync-proto.yml) with an optional branch input (defaults to main).
The fastest correctness check after syncing is to generate Java from the protos and compile:
make compileThis runs mvn clean compile (preferring ./mvnw if present), which:
- Generates Java sources from
proto/**/*.protointotarget/generated-sources/ - Compiles them into
target/classes/
This is also what CI runs in “Verify Proto Files” (.github/workflows/verify-proto.yml).
make clean.
├── proto/
│ └── banyandb/
│ └── v1/ # Consolidated (synced) proto files
├── scripts/
│ └── sync_proto.py # Sync + merge tool (pulls from upstream GitHub)
├── pom.xml # Java compile verification (protoc + javac via Maven)
├── mvnw # Maven wrapper (preferred)
├── Makefile # Convenience targets
└── README.md
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please follow the REPORTING GUIDELINES to report unacceptable behavior.
- Mail list: [email protected]. Mail to
[email protected], follow the reply to subscribe the mail list. - Send
Request to join SkyWalking slackmail to the mail list([email protected]), we will invite you in. - Twitter, ASFSkyWalking
- QQ Group: 901167865(Recommended), 392443393
- bilibili B站 视频