{"id":23363018,"url":"https://github.com/s2-streamstore/s2-sdk-rust","last_synced_at":"2026-02-15T21:05:06.747Z","repository":{"id":267512034,"uuid":"852160059","full_name":"s2-streamstore/s2-sdk-rust","owner":"s2-streamstore","description":"Rust SDK for S2, the durable streams API","archived":false,"fork":false,"pushed_at":"2026-01-16T03:28:34.000Z","size":681,"stargazers_count":42,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-17T01:56:59.907Z","etag":null,"topics":["durable","durable-streams","real-time","rust","streaming","streamstore"],"latest_commit_sha":null,"homepage":"https://s2.dev","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s2-streamstore.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-04T10:28:13.000Z","updated_at":"2026-01-16T03:28:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"7e8f8c38-7d0a-4450-a726-c3dac039eb3a","html_url":"https://github.com/s2-streamstore/s2-sdk-rust","commit_stats":null,"previous_names":["s2-streamstore/s2-sdk-rust"],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/s2-streamstore/s2-sdk-rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s2-streamstore%2Fs2-sdk-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s2-streamstore%2Fs2-sdk-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s2-streamstore%2Fs2-sdk-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s2-streamstore%2Fs2-sdk-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s2-streamstore","download_url":"https://codeload.github.com/s2-streamstore/s2-sdk-rust/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s2-streamstore%2Fs2-sdk-rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28522309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T22:11:28.393Z","status":"ssl_error","status_checked_at":"2026-01-17T22:11:27.841Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["durable","durable-streams","real-time","rust","streaming","streamstore"],"created_at":"2024-12-21T12:36:05.011Z","updated_at":"2026-01-17T23:33:29.623Z","avatar_url":"https://github.com/s2-streamstore.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\n    \u003c!-- Light mode logo --\u003e\n    \u003ca href=\"https://s2.dev#gh-light-mode-only\"\u003e\n      \u003cimg src=\"./assets/s2-black.png\" height=\"60\"\u003e\n    \u003c/a\u003e\n    \u003c!-- Dark mode logo --\u003e\n    \u003ca href=\"https://s2.dev#gh-dark-mode-only\"\u003e\n      \u003cimg src=\"./assets/s2-white.png\" height=\"60\"\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003ch1\u003eRust SDK for S2\u003c/h1\u003e\n\n  \u003cp\u003e\n    \u003c!-- Crates.io --\u003e\n    \u003ca href=\"https://crates.io/crates/s2-sdk\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/s2-sdk.svg\" /\u003e\u003c/a\u003e\n    \u003c!-- Docs.rs --\u003e\n    \u003ca href=\"https://docs.rs/s2-sdk/latest/s2_sdk/\"\u003e\u003cimg src=\"https://img.shields.io/docsrs/s2-sdk\" /\u003e\u003c/a\u003e\n    \u003c!-- Github Actions (CI) --\u003e\n    \u003ca href=\"https://github.com/s2-streamstore/s2-sdk-rust/actions?query=branch%3Amain++\"\u003e\u003cimg src=\"https://github.com/s2-streamstore/s2-sdk-rust/actions/workflows/ci.yml/badge.svg\" /\u003e\u003c/a\u003e\n    \u003c!-- Discord (chat) --\u003e\n    \u003ca href=\"https://discord.gg/vTCs7kMkAf\"\u003e\u003cimg src=\"https://img.shields.io/discord/1209937852528599092?logo=discord\" /\u003e\u003c/a\u003e\n    \u003c!-- LICENSE --\u003e\n    \u003ca href=\"./LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/s2-streamstore/s2-sdk-rust\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\nThe Rust SDK provides ergonomic interface and utilities to interact with the\n[S2 API](https://s2.dev/docs/rest/records/overview).\n\n## Getting started\n\n1. Ensure you have added [tokio](https://crates.io/crates/tokio) and [futures](https://crates.io/crates/futures) as dependencies.\n   ```bash\n   cargo add tokio --features full\n   cargo add futures\n   ```\n\n1. Add the `s2-sdk` dependency to your project:\n   ```bash\n   cargo add s2-sdk\n   ```\n\n1. Generate an access token by logging into the web console at\n   [s2.dev](https://s2.dev/dashboard).\n\n1. Perform an operation.\n   ```rust\n    use s2_sdk::{\n        S2,\n        types::{ListBasinsInput, S2Config},\n    };\n\n    #[tokio::main]\n    async fn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n        let s2 = S2::new(S2Config::new(\"\u003cYOUR_ACCESS_TOKEN\u003e\"))?;\n        let page = s2.list_basins(ListBasinsInput::new()).await?;\n        println!(\"My basins: {:?}\", page.values);\n        Ok(())\n    }\n   ```\n\n## Examples\n\nThe [`examples`](./examples) directory in this repository contains a variety of\nexample use cases demonstrating how to use the SDK effectively.\n\nYou might have to set either one or all of these env vars based on the example you run.\n\n```bash\nexport S2_ACCESS_TOKEN=\"\u003cYOUR_ACCESS_TOKEN\u003e\"\nexport S2_BASIN=\"\u003cYOUR_BASIN_NAME\u003e\"\nexport S2_STREAM=\"\u003cYOUR_STREAM_NAME\u003e\"\ncargo run --example \u003cexample_name\u003e\n```\n\n## SDK Docs and Reference\n\nHead over to [docs.rs](https://docs.rs/s2-sdk/latest/s2_sdk/) for\ndetailed documentation and crate reference.\n\n## Feedback\n\nWe use [Github Issues](https://github.com/s2-streamstore/s2-sdk-rust/issues) to\ntrack feature requests and issues with the SDK. If you wish to provide feedback,\nreport a bug or request a feature, feel free to open a Github issue.\n\n### Contributing\n\nDevelopers are welcome to submit Pull Requests on the repository. If there is\nno tracking issue for the bug or feature request corresponding to the PR, we\nencourage you to open one for discussion before submitting the PR.\n\n## Reach out to us\n\nJoin our [Discord](https://discord.gg/vTCs7kMkAf) server. We would love to hear\nfrom you.\n\nYou can also email us at [hi@s2.dev](mailto:hi@s2.dev).\n\n## License\n\nThis project is licensed under the [MIT License](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs2-streamstore%2Fs2-sdk-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs2-streamstore%2Fs2-sdk-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs2-streamstore%2Fs2-sdk-rust/lists"}