Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/laysakura/beam-proto-rs

Rust codes generated from apache/beam .proto
https://github.com/laysakura/beam-proto-rs

Last synced: 17 days ago
JSON representation

Rust codes generated from apache/beam .proto

Awesome Lists containing this project

README

        

# beam-proto-rs

Rust codes generated from protocol buffer files in the [apache/beam](https://github.com/apache/beam) repository.

This repository also provides a build script to compile the protobuf into Rust codes.

## Versioning

This crate basically follows the beam's versions.

- `v2.41.0` is generated from `.proto`s from [apache/beam](https://github.com/apache/beam) tag:v2.41.0.
- Some versions may have build numbers like `v2.41.0+N`, which means the N-th build (N > 1) generated from beam's tag:v2.41.0. 2nd and later builds are typically for bugfixes.

## Development

### Build

Generating `.rs` from beam's `.proto` requires `build-proto` feature flag.

```bash
cargo build --features build-proto -vv
```

`-vv` is to show `eprintln!()` strings to your terminal.

### Updating Beam

`beam/` is a git submodule.

```console
cd beam
git fetch --tags
git checkout v
cd ..
git commit -am 'build: bump up beam to v'
```

### Deployment

1. Change version in `Cargo.toml`.
2. Update Beam.
3. Shrink submodule size to avoid 413 error from crates.io: `cd beam; git sparse-checkout set model; cd ..`
4. In the `main` branch: `cargo publish`.

## License

Licensed under [Apache License, Version 2.0](LICENSE).

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in beam-proto-rs by you, as defined in the Apache-2.0 license, shall be
licensed as above, without any additional terms or conditions.

Copyright (c) 2022 Sho Nakatani \.