https://github.com/apache/skywalking-banyandb-client-proto
BanyanDB public client Protocol Buffer and gRPC definitions
https://github.com/apache/skywalking-banyandb-client-proto
apm database distributed-tracing logging metrics observability skywalking time-series
Last synced: about 13 hours ago
JSON representation
BanyanDB public client Protocol Buffer and gRPC definitions
- Host: GitHub
- URL: https://github.com/apache/skywalking-banyandb-client-proto
- Owner: apache
- License: apache-2.0
- Created: 2025-12-08T08:21:10.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-07-10T07:11:08.000Z (1 day ago)
- Last Synced: 2026-07-10T09:08:25.734Z (1 day ago)
- Topics: apm, database, distributed-tracing, logging, metrics, observability, skywalking, time-series
- Language: Python
- Homepage: https://skywalking.apache.org/
- Size: 103 KB
- Stars: 4
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Notice: NOTICE
Awesome Lists containing this project
README
# BanyanDB Client Proto Definitions

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)
## Upstream source of truth
Protos are synced from the Apache SkyWalking BanyanDB repository:
- **Repo**: `apache/skywalking-banyandb`
- **Path**: `api/proto/banyandb//v1/*.proto`
Locally, this repo maintains a consolidated, client-friendly layout:
- `proto/banyandb/v1/banyandb-common.proto`
- `proto/banyandb/v1/banyandb-database.proto`
- `proto/banyandb/v1/banyandb-measure.proto`
- `proto/banyandb/v1/banyandb-model.proto`
- `proto/banyandb/v1/banyandb-property.proto`
- `proto/banyandb/v1/banyandb-stream.proto`
- `proto/banyandb/v1/banyandb-trace.proto`
These files are produced by `scripts/sync_proto.py`, which also rewrites imports to match the merged layout.
## Prerequisites
- **Python**: 3.x (for `scripts/sync_proto.py`)
- **Java**: JDK 17 (for compilation verification)
- **Maven**: use `./mvnw` (recommended) or a system `mvn`
If you use `./mvnw` and hit a permission error, run:
```bash
chmod +x mvnw
```
## Sync protos
### Preview changes (dry-run)
```bash
make sync-proto-dry-run
```
Or directly (with extra options):
```bash
python3 scripts/sync_proto.py --branch main --dry-run
```
### Apply changes
Interactive (asks for confirmation):
```bash
make sync-proto
```
Non-interactive (useful in automation):
```bash
python3 scripts/sync_proto.py --branch main --force
```
### Sync only specific module(s)
```bash
python3 scripts/sync_proto.py --branch main --module common --module measure --force
```
Valid modules are: `common`, `database`, `measure`, `model`, `property`, `stream`, `trace`.
### Sync via GitHub Actions (opens a PR)
Run the workflow “Sync Proto Files” (`.github/workflows/sync-proto.yml`) with an optional `branch` input (defaults to `main`).
## Verify the sync (generate + compile)
The fastest correctness check after syncing is to **generate Java from the protos and compile**:
```bash
make compile
```
This runs `mvn clean compile` (preferring `./mvnw` if present), which:
- Generates Java sources from `proto/**/*.proto` into `target/generated-sources/`
- Compiles them into `target/classes/`
This is also what CI runs in “Verify Proto Files” (`.github/workflows/verify-proto.yml`).
## Clean
```bash
make clean
```
## Project structure
```
.
├── 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
```
## Code of conduct
This project adheres to the Contributor Covenant [code of conduct](https://www.apache.org/foundation/policies/conduct). By participating, you are expected to uphold this code.
Please follow the [REPORTING GUIDELINES](https://www.apache.org/foundation/policies/conduct#reporting-guidelines) to report unacceptable behavior.
## Contact Us
* Mail list: **dev@skywalking.apache.org**. Mail to `dev-subscribe@skywalking.apache.org`, follow the reply to subscribe the mail list.
* Send `Request to join SkyWalking slack` mail to the mail list(`dev@skywalking.apache.org`), we will invite you in.
* Twitter, [ASFSkyWalking](https://twitter.com/ASFSkyWalking)
* QQ Group: 901167865(Recommended), 392443393
* [bilibili B站 视频](https://space.bilibili.com/390683219)
## License
[Apache 2.0 License.](LICENSE)