A Rust library for listening on Twitter Streaming API.
Add this to your Cargo.toml
:
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:
```rust use futures::prelude::*; use twitter_stream::{Token, TwitterStream};
async fn main() { let token = Token::new("consumerkey", "consumersecret", "accesskey", "accesssecret");
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.