{"id":34517723,"url":"https://github.com/reductstore/reduct-py","last_synced_at":"2026-04-21T12:05:50.227Z","repository":{"id":37992975,"uuid":"451201429","full_name":"reductstore/reduct-py","owner":"reductstore","description":"ReductStore Client SDK for Python","archived":false,"fork":false,"pushed_at":"2026-04-03T17:36:15.000Z","size":299,"stargazers_count":6,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-03T18:59:51.830Z","etag":null,"topics":["asyncio","http-client","python","reductstore","sdk","storage-api"],"latest_commit_sha":null,"homepage":"https://www.reduct.store/docs","language":"Python","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/reductstore.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2022-01-23T18:57:11.000Z","updated_at":"2026-04-03T17:36:18.000Z","dependencies_parsed_at":"2023-12-03T10:25:20.647Z","dependency_job_id":"a504f681-1930-49cc-806a-45085f5f784b","html_url":"https://github.com/reductstore/reduct-py","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/reductstore/reduct-py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reductstore%2Freduct-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reductstore%2Freduct-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reductstore%2Freduct-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reductstore%2Freduct-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reductstore","download_url":"https://codeload.github.com/reductstore/reduct-py/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reductstore%2Freduct-py/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31545905,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["asyncio","http-client","python","reductstore","sdk","storage-api"],"created_at":"2025-12-24T04:25:40.912Z","updated_at":"2026-04-08T08:00:52.433Z","avatar_url":"https://github.com/reductstore.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReductStore Client SDK for Python\n\n[![PyPI](https://img.shields.io/pypi/v/reduct-py)](https://pypi.org/project/reduct-py/)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/reduct-py)](https://pypi.org/project/reduct-py/)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/reductstore/reduct-py/ci.yml?branch=main)](https://github.com/reductstore/reduct-py/actions)\n\nThis package provides an asynchronous HTTP client for interacting with  [ReductStore](https://www.reduct.store) in Python.\n\n## Features\n\n* Supports the [ReductStore HTTP API v1.19](https://www.reduct.store/docs/http-api)\n* Bucket management\n* API Token management\n* Write, read and query data\n* Labeling records\n* Batching records for read and write operations\n* Subscription\n* Replication management\n\n## Install\n\nTo install this package, run the following command:\n\n```\npip install reduct-py\n```\n\n## Example\n\nHere is an example of how to use this package to create a bucket, write data to it, and read data from it:\n\n```python\nfrom reduct import Client, BucketSettings, QuotaType\n\n\nasync def main():\n    # 1. Create a ReductStore client\n    async with Client(\"http://localhost:8383\", api_token=\"my-token\") as client:\n        # 2. Get or create a bucket with 1Gb quota\n        bucket = await client.create_bucket(\n            \"my-bucket\",\n            BucketSettings(quota_type=QuotaType.FIFO, quota_size=1_000_000_000),\n            exist_ok=True,\n        )\n\n        # 3. Write some data with timestamps in the 'entry-1' entry\n        await bucket.write(\"sensor-1\", b\"\u003cBlob data\u003e\",\n                           timestamp=\"2024-01-01T10:00:00Z\",\n                           labels={\"score\": 10})\n        await bucket.write(\"sensor-2\", b\"\u003cBlob data\u003e\",\n                           timestamp=\"2024-01-01T10:00:01Z\",\n                           labels={\"score\": 20})\n\n        # 4. Query the data by time range and condition\n        async for record in bucket.query(\"sensor-*\",\n                                         start=\"2024-01-01T10:00:00Z\",\n                                         stop=\"2024-01-01T10:00:02Z\",\n                                         when={\"\u0026score\": {\"$gt\": 10}}):\n            print(f\"Record entry: {record.entry}\")\n            print(f\"Record timestamp: {record.timestamp}\")\n            print(f\"Record size: {record.size}\")\n            print(await record.read_all())\n\n\n# 5. Run the main function\nif __name__ == \"__main__\":\n    import asyncio\n\n    asyncio.run(main())\n\n```\n\nFor more examples, see the [Guides](https://reduct.store/docs/guides) section in the ReductStore documentation.\n\n\n### Supported ReductStore Versions and Backward Compatibility\n\nThe library is backward compatible with the previous versions. However, some methods have been deprecated and will be\nremoved in the future releases. Please refer to **CHANGELOG.md** for more details.\nThe SDK supports the following ReductStore API versions:\n\n* v1.19\n* v1.18\n* v1.17\n\nIt can work with newer and older versions, but it is not guaranteed that all features will work as expected because\nthe API may change and some features may be deprecated or the SDK may not support them yet.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freductstore%2Freduct-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freductstore%2Freduct-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freductstore%2Freduct-py/lists"}