https://github.com/pantonshire/goldcrest
Twitter API proxy server using gRPC
https://github.com/pantonshire/goldcrest
grpc grpc-server twitter twitter-api
Last synced: 20 days ago
JSON representation
Twitter API proxy server using gRPC
- Host: GitHub
- URL: https://github.com/pantonshire/goldcrest
- Owner: pantonshire
- License: mit
- Created: 2020-09-10T14:41:40.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-03-30T17:49:33.000Z (about 4 years ago)
- Last Synced: 2024-06-19T23:15:17.776Z (almost 2 years ago)
- Topics: grpc, grpc-server, twitter, twitter-api
- Language: Go
- Homepage:
- Size: 396 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Goldcrest Twitter API Proxy
[](https://github.com/pantonshire/goldcrest/releases/latest)
[](https://hub.docker.com/r/pantonshire/goldcrest)
Goldcrest is a proxy server using gRPC for interacting with the Twitter API v1.1. Its main focus is on providing centralised
rate-limit tracking so that several processes can concurrently use the Twitter API without having to worry about rate-limits.
Currently, there are clients in [Go](client/go/au) and [Rust](client/rust).
Please note that this project is still in alpha stage; use at your own risk!
## Supported endpoints
Goldcrest currently supports the following Twitter API endpoints:
| Twitter API endpoint | gRPC method |
|------------------------------|----------------------|
| `statuses/update` | `PublishTweet` |
| `statuses/retweet` | `RetweetTweet` |
| `search/tweets` | `SearchTweets` |
| `statuses/unretweet` | `UnretweetTweet` |
| `statuses/show` | `GetTweet` |
| `statuses/lookup` | `GetTweets` |
| `statuses/destroy` | `DeleteTweet` |
| `statuses/home_timeline` | `GetHomeTimeline` |
| `statuses/mentions_timeline` | `GetMentionTimeline` |
| `statuses/user_timeline` | `GetUserTimeline` |
| `favorites/create` | `LikeTweet` |
| `favorites/destroy` | `UnlikeTweet` |
| `account/update_profile` | `UpdateProfile` |
## Setup
### Docker
Pre-built images are available on [Docker Hub](https://hub.docker.com/r/pantonshire/goldcrest).
```sh
docker run -d -p 127.0.0.1:8080:8080 --read-only pantonshire/goldcrest
```
Currently, images are available for amd64 and arm64. If you're using a different architecture, you'll probably need to build the image yourself:
```sh
docker build -t goldcrest https://github.com/Pantonshire/goldcrest.git#main
docker run -d -p 127.0.0.1:8080:8080 --read-only goldcrest
```
### Building from source
1. To compile Goldcrest from source, you will first need the following:
- [Go](https://golang.org/dl/) ≥ 1.15
- [Protocol Buffers Compiler v3](https://developers.google.com/protocol-buffers/docs/downloads)
- [protoc-gen-go](https://pkg.go.dev/google.golang.org/protobuf/cmd/protoc-gen-go)
(`go install google.golang.org/protobuf/cmd/protoc-gen-go`)
2. Run `make proto` from the repository root.
3. Run `make` from the repository root.
4. `cp default.goldcrest.yaml goldcrest.yaml` to get a correctly-named config file.