{"id":47795008,"url":"https://github.com/eclipse-score/persistency","last_synced_at":"2026-04-03T16:13:50.554Z","repository":{"id":286565173,"uuid":"901775070","full_name":"eclipse-score/persistency","owner":"eclipse-score","description":"Repository for persistency framework","archived":false,"fork":false,"pushed_at":"2026-04-03T00:44:27.000Z","size":9142,"stargazers_count":2,"open_issues_count":32,"forks_count":28,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-04-03T03:17:34.410Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://eclipse-score.github.io/persistency","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/eclipse-score.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-11T09:42:23.000Z","updated_at":"2026-03-24T06:37:28.000Z","dependencies_parsed_at":"2025-07-09T08:44:43.470Z","dependency_job_id":"43568ef9-1799-4167-ad0f-dd89f157a235","html_url":"https://github.com/eclipse-score/persistency","commit_stats":null,"previous_names":["eclipse-score/inc_mw_per","eclipse-score/persistency"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/eclipse-score/persistency","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-score%2Fpersistency","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-score%2Fpersistency/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-score%2Fpersistency/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-score%2Fpersistency/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-score","download_url":"https://codeload.github.com/eclipse-score/persistency/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-score%2Fpersistency/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31362716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T15:19:21.178Z","status":"ssl_error","status_checked_at":"2026-04-03T15:19:20.670Z","response_time":107,"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":[],"created_at":"2026-04-03T16:13:49.771Z","updated_at":"2026-04-03T16:13:50.536Z","avatar_url":"https://github.com/eclipse-score.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Key-Value-Storage\n\n## License\n\n```text\nCopyright (c) 2025 Contributors to the Eclipse Foundation\n\nSee the NOTICE file(s) distributed with this work for additional\ninformation regarding copyright ownership.\n\nThis program and the accompanying materials are made available under the\nterms of the Apache License Version 2.0 which is available at\nhttps://www.apache.org/licenses/LICENSE-2.0\n\nSPDX-License-Identifier: Apache-2.0\n```\n\n## Setup\n\n\u003e [!NOTE]\n\u003e This repository offers a [DevContainer](https://containers.dev/).\n\u003e For setting this up and enabling code completion read [eclipse-score/devcontainer/README.md#inside-the-container](https://github.com/eclipse-score/devcontainer/blob/main/README.md#inside-the-container).\n\nIf you chose not to use the devcontainer you have to setup the following dependencies yourself.\n\n### System dependencies\n\n```bash\nsudo apt-get update\nsudo apt-get install -y curl build-essential protobuf-compiler libclang-dev\n```\n\n### Rust installation\n\n[Install Rust using rustup](https://www.rust-lang.org/tools/install)\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y\n```\n\n### Bazel installation\n\n[Install Bazel using Bazelisk](https://bazel.build/install/bazelisk)\n\n```bash\ncurl --proto '=https' -sSfOL https://github.com/bazelbuild/bazelisk/releases/download/v1.26.0/bazelisk-amd64.deb\ndpkg -i bazelisk-amd64.deb\nrm bazelisk-amd64.deb\n```\n\nCorrect Bazel version will be installed on first run, based on `bazelversion` file.\n\n## Build\n\nList all targets:\n\n```bash\nbazel query //...\n```\n\nList curated available targets with description:\n\n```bash\nbazel run //:help\n```\n\nBuild selected target:\n\n```bash\nbazel build \u003cTARGET_NAME\u003e\n```\n\nBuild all targets:\n\n```bash\nbazel build //...\n```\n\n## Run\n\nList all rust library targets:\n\n```bash\nbazel query 'kind(rust_library, //src/...)'\n```\n\nRun selected target:\n\n```bash\nbazel run \u003cTARGET_NAME\u003e\n```\n\n## Test\n\nList all test targets:\n\n```bash\nbazel query 'kind(rust_test, //...)'\n```\n\nRun all tests:\n\n```bash\nbazel test //...\n```\n\nRun Component Integration Tests (grouped into single Test Suite):\n\n```bash\nbazel test //src/rust/rust_kvs:cit\n```\n\nRun selected test target:\n\n```bash\nbazel test \u003cTARGET_NAME\u003e\n```\n\n## Clippy\n\n- Clippy runs by default via `.bazelrc` when building Rust targets (rules_lint aspect).\n- Use `bazel build //src/rust/...` (or any Rust target pattern) while developing.\n- Use `bazel build --config=lint //src/rust/...` to enable lint config, including `--@aspect_rules_lint//lint:fail_on_violation=true`.\n- The Clippy config comes from `@score_rust_policies//clippy/strict:clippy.toml`.\n\n## Cargo-based operations\n\nPlease use Bazel whenever possible.\n\n### Build with Cargo\n\nBuild using `cargo` directly:\n\n```bash\ncargo build\n```\n\n### Run CLI tool with Cargo\n\n```bash\ncargo run --help\n```\n\n```text\n---------------------------------------\nKVS Tool - Command Line Interface\n---------------------------------------\n\nVersion 0.1.0\n\n---------------------------------------\n\nOptions:\n-h, --help          Show this help message and exit\n-o, --operation     Specify the operation to perform (setkey, getkey, removekey, \n                    listkeys, reset, snapshotcount, snapshotmaxcount, snapshotrestore, \n                    getkvsfilename, gethashfilename, createtestdata)\n-k, --key           Specify the key to operate on (for key operations)\n-p, --payload       Specify the value to write (for set operations)\n-s, --snapshotid    Specify the snapshot ID for Snapshot operations\n-d, --directory     Specify the directory of the Key-Files (default is current directory)\n\n---------------------------------------\n\nUsage Examples:\n\nRead a Key and show value:\n    kvs_tool -o getkey -k MyKey\n\nWrite a Key and use the \u003cpayload\u003e as the data source:\n    (automatically detects following types: Number, Boolean, String, Null, Object, Array)\n    kvs_tool -o setkey  -k MyKey -p 'Hello World' \n    kvs_tool -o setkey  -k MyKey -p 'true'\n    kvs_tool -o setkey  -k MyKey -p 15\n    kvs_tool -o setkey  -k MyKey -p '[456,false,\"Second\"]'\n    kvs_tool -o setkey  -k MyKey -p '{\"sub-number\":789,\"sub-array\":[1246,false,\"Fourth\"]}'\n\nDelete a key:\n    kvs_tool -o removekey -k MyKey\n\nList Keys:\n    kvs_tool -o listkeys\n\nReset KVS:\n    kvs_tool -o reset\n\nSnapshot Count:\n    kvs_tool -o snapshotcount\n\nSnapshot Restore:\n    kvs_tool -o snapshotrestore -s 1\n\nGet KVS Filename:\n    kvs_tool -o getkvsfilename -s 1\n\nGet Hash Filename:\n    kvs_tool -o gethashfilename -s 1\n\n---------------------------------------\n\nCreate Test Data:\n    kvs_tool -o createtestdata (Creates Data provided by the example code in the KVS API)\n\n---------------------------------------\n```\n\n### Run tests with Cargo\n\nUsing `cargo test`:\n\n```bash\ncargo test\n```\n\n### Run examples with Cargo\n\nExamples can be run `cargo run`.\nFollowing examples are available: `basic`, `defaults`, `flush`, `snapshots`.\n\n```bash\ncargo run --example \u003cEXAMPLE_NAME\u003e\n```\n\nBasic example command:\n\n```bash\ncargo run --example basic\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-score%2Fpersistency","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-score%2Fpersistency","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-score%2Fpersistency/lists"}