Skip to content

Commit

Permalink
rust(build): rc.2 prep + new examples (#127)
Browse files Browse the repository at this point in the history
  • Loading branch information
solidiquis authored Nov 12, 2024
1 parent 9bebbdf commit 35ef3c1
Show file tree
Hide file tree
Showing 27 changed files with 529 additions and 3,727 deletions.
43 changes: 13 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,10 @@
[![Build status](https://github.com/sift-stack/sift/actions/workflows/go_ci.yaml/badge.svg)](https://github.com/sift-stack/sift/actions)
[![Build status](https://github.com/sift-stack/sift/actions/workflows/protos_ci.yaml/badge.svg)](https://github.com/sift-stack/sift/actions)
[![pypi](https://img.shields.io/pypi/v/sift-stack-py)](https://pypi.org/project/sift-stack-py/)
[![Crates.io](https://img.shields.io/crates/v/sift_rs.svg)](https://crates.io/crates/sift_rs)

This repository contains utilities to interface with Sift's API. Currently, the primary way to interact with our API is through the code generated via our protobufs (protocol buffers). Comprehensive documentation
for our protobufs can be found at [this link](https://docs.siftstack.com/ingestion/api) or in the actual proto files themselves as doc-comments.
If certain protobufs are not yet available for a particular API, please refer to the documentation for our [REST API](https://docs.siftstack.com/api-docs/rest) which may expose those services via gRPC gateway.

Please note that some protobufs that appear in our [protobuf documentation](https://docs.siftstack.com/ingestion/api) may not appear in this repository. Those protobufs are either actively being ported over or are
in the process of being deprecated.
This repository contains client libraries and protocol buffers to interact with Sift's API in various languages. Each client library contains pre-compiled protocol buffers, but should you wish
to compile the protocol buffers yourself there are instructions on how to go about it in the [Manual Protobuf Compilation](#manual-protobuf-compilation) section.

## Table of Contents

Expand All @@ -20,56 +17,42 @@ in the process of being deprecated.
- [Go](#go)
- [Rust](#rust)
- [Python](#python)
- [Manual Installation](#manual-installation)
- [Manual Protobuf Compilation](#manual-protobuf-compilation)
* [Examples](#examples)

## Installation

To install Sift's client utilities for the languages we currently support, you can either use your language's package manager or proceed with a manual installation process if you have particular requirements for
how the protobufs should be generated.
The Sift client library can be installed using the package managers for the languages that are currently supported. If you are using a language that isn't officially supported see
the [Manual Protobuf Compilation](#manual-protobuf-compilation) section.

### Installation via Package Managers

The following demonstrates how to install Sift's client utilities for each supported language using their respective official package managers. If a package is currently being hosted
directly on Github, do note that we are in the process of moving them to the official package repositories for each language.
The following demonstrates how to install the Sift client library for each supported language. Packages that are downloaded
from Github are in the process of being moved to their language's official package repository.

#### Python

```
$ pip install sift-stack-py
```

#### Go
#### Rust

```
$ go get github.com/sift-stack/sift/go@main && go mod tidy
$ cargo add sift_rs
```

#### Rust
#### Go

```
$ cargo add --git https://github.com/sift-stack/sift sift
$ go get github.com/sift-stack/sift/go@main && go mod tidy
```

### Manual Installation
### Manual Protobuf Compilation

For manual installation instructions for a particular supported programming language, click on one of the following links:
- [Go](/docs/go.md)
- [Rust](/docs/rust.md)
- [Python](/docs/python.md)

Please keep in mind that the manual installation instructions aims to be general and do not need to be strictly followed. Users are encouraged to modify any of the steps or proceed with a custom setup if it better suits the needs of their project.

If there aren't instructions for your particular programming language consider one of the following options:
- Request for the Sift team to include instructions for your language of choice. Keep in mind that there are varying degrees of support for each language throughout the protobuf ecosystem. Depending on the language, support might be totally unavailable.
- Compile the protobufs manually.
- Use our [REST API](https://docs.siftstack.com/api-docs/rest).

In the near future we will plan to provide more installation options.

## Examples

For usage examples you may also refer to examples which demonstrates basic usage of the code generated from the protobufs.
- [Python Examples](https://github.com/sift-stack/sift/tree/main/python/examples)
- [Go Examples](https://github.com/sift-stack/sift/tree/main/go/examples)
- [Rust Examples](https://github.com/sift-stack/sift/tree/main/rust/examples)
9 changes: 9 additions & 0 deletions rust/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Change Log
All notable changes to this project will be documented in this file.

This project adheres to [Semantic Versioning](http://semver.org/).

## [v0.1.0-rc.2] - November 12, 2024

Official release candidate for `v0.1.0` of `sift_rs` which contains compiled protocol buffers
as well as gRPC utilities for ergonomic setup.
Loading

0 comments on commit 35ef3c1

Please sign in to comment.