Cherami is a distributed, scalable, durable, and highly available message queue system we developed at Uber Engineering to transport asynchronous tasks.
This repo holds thrift IDL files and generated code used by Cherami to communicate between server and clients, or between components within Cherami. This repo is not end-user useful on its own, but needed only when a feature require IDL changes. If you are a developer looking to use Cherami, please instead use cherami-client-go
repo and cherami-server
repo.
The `cherami-thrift.git branch specifically holds the thrift definition along with the autogenerated code for the thrift APIs.
Prerequisite:
- Make certain that
thrift
is in your path. (OSX:brew install thrift
) thrift-gen
is needed (go get github.com/uber/tchannel-go/thrift/thrift-gen
)
After editing the thrift files, run make
to generate code:
We'd love your help in making Cherami great. If you need new API(s) to be added to our thrift files, open an issue and we will respond as fast as we can. If you want to propose new feature(s) along with the appropriate APIs yourself, open a pull request to start a discussion and we will merge it after review.
Note: All contributors also need to fill out the Uber Contributor License Agreement before we can merge in any of your changes
Interested in learning more about Cherami? Read the blog post: eng.uber.com/cherami
MIT License, please see LICENSE for details.