| Crates.io | twitter-stream |
| lib.rs | twitter-stream |
| version | 0.13.0 |
| created_at | 2017-01-23 10:59:32.626596+00 |
| updated_at | 2021-07-17 09:02:20.104858+00 |
| description | A library for listening on Twitter Streaming API. |
| homepage | https://github.com/tesaguri/twitter-stream-rs |
| repository | https://github.com/tesaguri/twitter-stream-rs |
| max_upload_size | |
| id | 8192 |
| size | 94,876 |
A Rust library for listening on Twitter Streaming API.
Add this to your Cargo.toml:
[dependencies]
futures = "0.3"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
twitter-stream = "0.13"
Here is a basic example that prints public mentions to @Twitter in JSON format:
use futures::prelude::*;
use twitter_stream::{Token, TwitterStream};
#[tokio::main]
async fn main() {
let token = Token::new("consumer_key", "consumer_secret", "access_key", "access_secret");
TwitterStream::track("@Twitter", &token)
.try_flatten_stream()
.try_for_each(|json| {
println!("{}", json);
future::ok(())
})
.await
.unwrap();
}
egg-mode, a Twitter API client crate, implements a Streaming API client as well. The following table shows key differences between twitter-stream and egg-mode.
twitter-stream |
egg-mode |
|
|---|---|---|
| Streaming message type | string::String<bytes::Bytes> (raw JSON string) |
StreamMessage (deserialized message) |
| REST API integration | No | Yes |
| Customizable HTTP client | Yes | No |
If your application don't require explicit control over the raw JSON strings or underlying HTTP client, egg-mode may be a better choice.
This project is licensed under the MIT license (LICENSE or https://opensource.org/licenses/MIT) unless explicitly stated otherwise.