Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/iotic-labs/iotics-grpc-client-rs


https://github.com/iotic-labs/iotics-grpc-client-rs

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# iotics-grpc-client-rs

[![Crates][crates_badge]][crates]
[![Crates.io][crates_installs_badge]][crates]
[![CI][ci_badge]][ci]
[![dependency status][dependencies_badge]][dependencies]
[![license][license_badge]][license]\
IOTICS gRPC client in Rust.

## Usage and Version Compatibility with Iotics host

| iotics-grpc-client-rs | iotics-host |
| ------------------------------ | ----------- |
| `iotics-grpc-client = "7.x.x"` | `>= 7` |
| `iotics-grpc-client = "6.x.x"` | `>= 7` |
| `iotics-grpc-client = "5.x.x"` | `>= 6` |
| `iotics-grpc-client = "4.x.x"` | `>= 6` |
| `iotics-grpc-client = "3.x.x"` | `>= 5` |
| `iotics-grpc-client = "2.x.x"` | `>= 5` |
| `iotics-grpc-client = "0.3.x"` | `>= 4` |

[API Docs][api_docs]

## Running the examples

Rename `.env-sample` to `.env` and give values to the environment variables.

```bash
git clone --recurse-submodules [email protected]:Iotic-Labs/iotics-grpc-client-rs.git
cargo run --features tls --example search
```

## Contributing

### Proto files

- Are submoduled in [api/](api/) from [https://github.com/Iotic-Labs/api][api_remote].
- [proto/google/rpc/status.proto][google_proto_local] is included as it's a dependency.

### Incrementing the API version

Run

```bash
cd api
git fetch --all --tags
git checkout tags/vX.X.X
cd ..
git add api

git commit -m "Updated api to vX.X.X"
git push
```

### Updating the API version

```bash
git submodule update --remote
```

### Building

You will need to ensure you have the appropriate packages installed on your system to
compile protobuf. On Ubuntu systems, for example:

```bash
sudo apt install protobuf-compiler libprotobuf-dev
```

### PRs

Commands to run before creating a PR

```bash
cargo make format
cargo make clippy
```

Should contain a summary of the changes in [CHANGELOG.md](README.md) under the Unreleased section.

### Releasing

- Increment the version in [Cargo.toml][cargo_version]
- Update [README.md](README.md) and [CHANGELOG.md](CHANGELOG.md) as needed
- Commit
- Tag the commit and push the changes to `main`

```bash
git push
git tag -a vX.X.X -m "vX.X.X"
git push origin vX.X.X
```

- Release\
Create a [new release][releases] containing the relevant change log.\
The [publish.yaml][publish_action] GitHub Action will pick it up and do the actual release to [crates.io][crates].

[crates_badge]: https://img.shields.io/crates/v/iotics-grpc-client.svg
[crates]: https://crates.io/crates/iotics-grpc-client
[crates_installs_badge]: https://img.shields.io/crates/d/iotics-grpc-client?label=cargo%20installs
[ci_badge]: https://github.com/Iotic-Labs/iotics-grpc-client-rs/workflows/CI/badge.svg?branch=main
[ci]: https://github.com/Iotic-Labs/iotics-grpc-client-rs/actions
[dependencies_badge]: https://deps.rs/repo/github/Iotic-Labs/iotics-grpc-client-rs/status.svg?style=flat-square
[dependencies]: https://deps.rs/repo/github/Iotic-Labs/iotics-grpc-client-rs
[license_badge]: https://img.shields.io/crates/l/iotics-grpc-client.svg
[license]: https://github.com/Iotic-Labs/iotics-grpc-client-rs/blob/main/LICENSE
[api_docs]: https://docs.rs/iotics-grpc-client/latest
[api_remote]: https://github.com/Iotic-Labs/api
[google_proto_local]: proto/google/rpc/status.proto
[cargo_version]: https://github.com/Iotic-Labs/iotics-grpc-client-rs/blob/main/Cargo.toml#L3
[releases]: https://github.com/Iotic-Labs/iotics-grpc-client-rs/releases
[publish_action]: https://github.com/Iotic-Labs/iotics-grpc-client-rs/actions/workflows/security-audit.yml

### OSS Review

```
cargo install cargo-license
cargo license -t --avoid-build-deps --avoid-dev-deps --direct-deps-only
```