{"id":18591851,"url":"https://github.com/sdsc-ordes/tripsu","last_synced_at":"2025-04-10T15:31:50.805Z","repository":{"id":247983014,"uuid":"811884583","full_name":"sdsc-ordes/tripsu","owner":"sdsc-ordes","description":"Pseudonymize rdf graphs for privacy protection.","archived":false,"fork":false,"pushed_at":"2025-04-09T12:40:26.000Z","size":441,"stargazers_count":4,"open_issues_count":11,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T13:39:56.428Z","etag":null,"topics":["cli","privacy","rdf"],"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/sdsc-ordes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2024-06-07T13:57:33.000Z","updated_at":"2025-04-03T13:46:47.000Z","dependencies_parsed_at":"2024-08-25T19:41:45.566Z","dependency_job_id":"24e4d09f-6a30-45ac-aa0b-8d0cbb05ae7e","html_url":"https://github.com/sdsc-ordes/tripsu","commit_stats":null,"previous_names":["sdsc-ordes/tripsu"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdsc-ordes%2Ftripsu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdsc-ordes%2Ftripsu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdsc-ordes%2Ftripsu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdsc-ordes%2Ftripsu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sdsc-ordes","download_url":"https://codeload.github.com/sdsc-ordes/tripsu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248243465,"owners_count":21071054,"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","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":["cli","privacy","rdf"],"created_at":"2024-11-07T01:05:14.719Z","updated_at":"2025-04-10T15:31:50.340Z","avatar_url":"https://github.com/sdsc-ordes.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/assets/logo.png\" alt=\"tripsu logo\" width=\"250\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e\n  tripsu\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/sdsc-ordes/tripsu/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/release/sdsc-ordes/tripsu.svg?style=for-the-badge\" alt=\"Current Release label\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sdsc-ordes/tripsu/actions/workflows/main-and-pr.yaml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/sdsc-ordes/tripsu/main-and-pr.yaml?label=tests\u0026style=for-the-badge\" alt=\"Test Status label\" /\u003e\u003c/a\u003e\n  \u003ca href=\"http://www.apache.org/licenses/LICENSE-2.0.html\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/LICENSE-Apache2.0-ff69b4.svg?style=for-the-badge\" alt=\"License label\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n`tripsu` (/tɹˈɪpsˈuː/, **trip**le **pseu**donymizer) is a tool to protect\nsensitive values in [RDF triples](https://en.wikipedia.org/wiki/Semantic_triple)\nthrough [pseudonymization](https://en.wikipedia.org/wiki/Pseudonymization). The\ngoal is to offer a fast, secure and memory-efficient pseudonymization solution\nto any RDF graph.\n\nNote: code is still in development and we support only\n[NTriples format](https://en.wikipedia.org/wiki/N-Triples) as input.\n\nThe tool works in two steps:\n\n1. Indexing to create a reference to all\n   [rdf:type](https://www.w3.org/TR/rdf12-schema/#ch_type) instances in the\n   graph\n2. Pseudonymization to encrypt or hash sensitive parts of any RDF triple in the\n   graph via a human-readable configuration file and the previously generated\n   index\n\n\u003cdetails\u003e\n    \u003csummary\u003eTable of Content\u003c/summary\u003e\n\n\u003c!--toc:start--\u003e\n\n- [Installation](#installation)\n  - [Container](#container)\n  - [Source Build](#source-build)\n- [Usage](#usage)\n- [Development](#development)\n\u003c!--toc:end--\u003e\n\n\u003c/details\u003e\n\n## Installation\n\n### Container\n\nRun the container image directly with `docker` or `podman`:\n\n```shell\ndocker run -it ghcr.io/sdsc-ordes/tripsu:0.0.1 --help\n```\n\n### Source Build\n\nThe package can be compiled from source using\n[cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html):\n\n```shell\ngit clone https://github.com/sdsc-ordes/tripsu\ncd tripsu\ncargo build --release\n\n./target/release/tripsu --help\n```\n\n\u003c!-- prettier-ignore --\u003e\n\u003e [!TIP]\n\u003e Check the [development section](#development) for other setups (Nix\n\u003e etc.).\n\n## Usage\n\nThe general command-line interface outlines the two main steps of the tool,\nindexing and pseudonymization:\n\n```shell\ntripsu --help\n```\n\nwhich outputs\n\n```text\nA tool to pseudonymize URIs and values in RDF graphs.\n\nUsage: tripsu \u003cCOMMAND\u003e\n\nCommands:\n  index   1. Pass: Create a node-to-type index from input triples\n  pseudo  2. Pass: Pseudonymize input triples\n  help    Print this message or the help of the given subcommand(s)\n\nOptions:\n  -h, --help     Print help\n  -V, --version  Print version\n```\n\nIndexing only requires an RDF file as input:\n\n```shell\ntripsu index input.nt \u003e index.nt\n```\n\nPseudonymization requires an RDF file, index and rules configuration as input:\n\n```shell\ntripsu pseudo --index index.nt --rules rules.yaml input.nt \u003e output.nt\n```\n\nBy default, pseudonymization uses a random key. To make the process\ndeterministic, you may provide a file containing a fixed key with `--secret`.\n\nIn both subcommands, the input defaults to stdin and the output to stdout,\nallowing to pipe both up- and downstream `tripsu` (see next section).\n\n\u003c!-- prettier-ignore --\u003e\n\u003e [!TIP]\n\u003e Each subcommand supports the `--help` option to show all options. For\n\u003e more information about use-cases and configuration, see the\n\u003e [tutorial](docs/tutorial.md).\n\n## Development\n\nRead first the [Contribution Guidelines](/CONTRIBUTING.md).\n\nFor technical documentation on setup and development, see the\n[Development Guide](docs/development-guide.md)\n\n## Copyright\n\nCopyright © 2023-2024 Swiss Data Science Center (SDSC),\n[www.datascience.ch](http://www.datascience.ch/). All rights reserved. The SDSC\nis jointly established and legally represented by the École Polytechnique\nFédérale de Lausanne (EPFL) and the Eidgenössische Technische Hochschule Zürich\n(ETH Zürich). This copyright encompasses all materials, software, documentation,\nand other content created and developed by the SDSC.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdsc-ordes%2Ftripsu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsdsc-ordes%2Ftripsu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdsc-ordes%2Ftripsu/lists"}