{"id":16677621,"url":"https://github.com/makischristou/fhestring","last_synced_at":"2025-10-16T19:57:44.415Z","repository":{"id":213007027,"uuid":"704619833","full_name":"MakisChristou/fheString","owner":"MakisChristou","description":"A FHE implementation of a String library for the Zama bounty program.","archived":false,"fork":false,"pushed_at":"2024-02-24T17:09:34.000Z","size":1898,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"shortint","last_synced_at":"2025-03-06T02:52:30.378Z","etag":null,"topics":["bounty","cli","fhe","rust","string","tfhe"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MakisChristou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-10-13T16:52:13.000Z","updated_at":"2024-07-17T09:04:21.000Z","dependencies_parsed_at":"2023-12-17T22:26:39.327Z","dependency_job_id":"317a6b37-41bf-450d-a423-35a3f6d3b2ed","html_url":"https://github.com/MakisChristou/fheString","commit_stats":null,"previous_names":["makischristou/fhestring"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakisChristou%2FfheString","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakisChristou%2FfheString/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakisChristou%2FfheString/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakisChristou%2FfheString/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MakisChristou","download_url":"https://codeload.github.com/MakisChristou/fheString/tar.gz/refs/heads/shortint","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243357837,"owners_count":20277988,"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":["bounty","cli","fhe","rust","string","tfhe"],"created_at":"2024-10-12T13:27:03.802Z","updated_at":"2025-10-16T19:57:39.378Z","avatar_url":"https://github.com/MakisChristou.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FheString\nA Fully Homomorphic String library written in Rust using Zama's [tfhe-rs](https://github.com/zama-ai/tfhe-rs). \n\n## How it works\nThe binary given is not meant for production use but rather a proof of concept on how a FHE String library would work. The program takes as cli arguments the string, pattern, n, from and to and runs all supported algorithms and compares their results with the standard string library in Rust. It outputs the time it took as well as if the results match.\n\n\n## Supported String functions\nThe supported string functions are the following:\n\n- `contains` with clear / encrypted pattern\n- `ends_with` with clear pattern / encrypted pattern\n- `eq_ignore_case`\n- `find` with clear pattern / encrypted pattern\n- `is_empty`\n- `len`\n- `repeat` with clear / encrypted number of repetitions\n- `replace` with clear pattern / encrypted pattern\n- `replacen` with clear pattern / encrypted pattern\n- `rfind` with clear pattern / encrypted pattern\n- `rsplit` with clear pattern / encrypted pattern\n- `rsplit_once` with clear pattern / encrypted pattern\n- `rsplitn` with clear pattern / encrypted pattern\n- `rsplit_terminator` with clear pattern / encrypted pattern\n- `split` with clear pattern / encrypted pattern\n- `split_ascii_whitespace`\n- `split_inclusive` with clear pattern / encrypted pattern\n- `split_terminator` with clear pattern / encrypted pattern\n- `splitn` with clear pattern / encrypted pattern\n- `starts_with` with clear pattern / encrypted pattern\n- `strip_prefix` with clear pattern / encrypted pattern\n- `strip_suffix` with clear pattern / encrypted pattern\n- `to_lowercase`\n- `to_uppercase`\n- `trim`\n- `trim_end`\n- `trim_start`\n- `+` (concatenation)\n- Comparisons between strings `\u003e=`, `\u003c=`, `!=`, `==`\n\n\n## Buidling \n\n```bash\ncargo b --release\n```\n\n## Example input \n```bash\n$ fhestring --string \"hello\" --pattern \"ello\" --n 1 --from \"ello\" --to \"_llo\"\n```\n\n## Cli Arguments\n```bash\n$ fhestring --help\n    Finished release [optimized] target(s) in 0.08s\n     Running `target/release/fhestring --help`\nA FHE string implementation using tfhe-rs\n\nUsage: fhestring --string \u003cSTRING\u003e --pattern \u003cPATTERN\u003e --n \u003cN\u003e --from \u003cFROM\u003e --to \u003cTO\u003e\n\nOptions:\n  -s, --string \u003cSTRING\u003e    The string to do the processing on\n  -p, --pattern \u003cPATTERN\u003e  The pattern for the algoritmhs that need it\n  -n, --n \u003cN\u003e              The number of times to make an operation for the algoritmhs that need it\n  -f, --from \u003cFROM\u003e        What will be replaced (for replace algorithms)\n  -t, --to \u003cTO\u003e            What will replace it (for replace algorithms)\n  -h, --help               Print help\n  -V, --version            Print version\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakischristou%2Ffhestring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakischristou%2Ffhestring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakischristou%2Ffhestring/lists"}