{"id":20048860,"url":"https://github.com/sintef/rrdcached-client","last_synced_at":"2025-10-07T19:58:58.096Z","repository":{"id":224407708,"uuid":"763199755","full_name":"SINTEF/rrdcached-client","owner":"SINTEF","description":"A RRDCached (RRDtool) client library","archived":false,"fork":false,"pushed_at":"2025-08-23T19:48:40.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-24T02:22:22.841Z","etag":null,"topics":["crate","rrdcached","rrdtool","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SINTEF.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-02-25T20:04:37.000Z","updated_at":"2025-08-23T19:48:35.000Z","dependencies_parsed_at":"2025-05-16T09:49:59.697Z","dependency_job_id":null,"html_url":"https://github.com/SINTEF/rrdcached-client","commit_stats":null,"previous_names":["sintef/rrdcached-client"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/SINTEF/rrdcached-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SINTEF%2Frrdcached-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SINTEF%2Frrdcached-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SINTEF%2Frrdcached-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SINTEF%2Frrdcached-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SINTEF","download_url":"https://codeload.github.com/SINTEF/rrdcached-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SINTEF%2Frrdcached-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278838468,"owners_count":26054721,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"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":["crate","rrdcached","rrdtool","rust"],"created_at":"2024-11-13T11:46:59.686Z","updated_at":"2025-10-07T19:58:58.063Z","avatar_url":"https://github.com/SINTEF.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RRDCached-Client\n\nRRDCached-Client is a Rust™ RRDCached client library.\n\nIt lets you connect to a [RRDCached](https://rrdtool.org/rrdtool/doc/rrdcached.en.html) API. RRDCached is a server to handle many [RRDTool](https://oss.oetiker.ch/rrdtool/) databases.\n\nRRDtool databases are time series databases using a round-robin data structure. A RRDTool database file is always the same size and location on the filesystem. It never grows. Old data is discarded over time, but it is possible to downsample the data to keep a longer history. For example, it's possible to have a 1-second resolution for a day, a 1-minute resolution for a month, a 1-hour resolution for a year, and a 1-day resolution for 10 years. Querying the database is practically instantaneous.\n\nWhile this technology fell out of fashion compared to the more modern time series databases, such as Prometheus or InfluxDB, it is still appreciated because it is simple and works well for some workloads.\n\n## Installation\n\nAdd this to your `Cargo.toml`:\n\n```toml\n[dependencies]\nrrdcached-client = \"0.1\"\n```\n\n## Example\n\n```rust\nlet mut client = RRDCachedClient::connect_tcp(\"localhost:42217\")\n    .await?;\n\nclient.create(\"hello\", \u0026[\n    RRA::Gauge {\n        xff: 0.5,\n        steps: 1,\n        rows: 10,\n    }\n]).await?;\n\nclient.update_one(\"hello\", None, 4.2).await?;\n```\n\n## Running a RRDCached server\n\nThe repository includes a Dockerfile to quickly run an RRDCached server for testing and development purposes. It listens on localhost:42217 (tcp).\n\n```bash\ndocker build . -f rrdcached.Dockerfile -t rrdcached\ndocker run -it --rm -p 127.0.0.1:42217:42217 --name rrdcached rrdcached\n```\n\nTo test the unix socket feature, you can use `socat` to create a unix socket proxy to the tcp server.\n\n```bash\nsocat UNIX-LISTEN:./rrdcached.sock,reuseaddr,fork TCP:localhost:42217\n```\n\n## Why?\n\nPlaying with the RRDCached API did sound fun while it was sadly raining on the snow outside (24th of February 2024).\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0 - see the [LICENSE](LICENSE) file for details.\n\nPlease note that RRDTool and RRDCached are licensed under the GPL v2.0. But we connect through a Unix or TCP socket, so licensing this project under the Apache License is valid. If RRDTool or RRDCached were licensed under the Affero GPL, this project would also have to be licensed under the Affero GPL.\n\n## Should I use this in production?\n\nAs the license says, there is no warranty for this free software. It has been developed over a few hours and isn't used in production.\n\nThe unit and integration test coverage is relatively high, and the library is designed to be safe and robust, thanks to the great Rust ecosystem. But it's a young project, and it must have bugs.\n\nYou should probably use a more modern time series database in production. But you may be an RRDTool enthusiast and find this library useful.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsintef%2Frrdcached-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsintef%2Frrdcached-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsintef%2Frrdcached-client/lists"}