{"id":13734745,"url":"https://github.com/secretflow/yacl","last_synced_at":"2026-04-02T01:58:53.780Z","repository":{"id":41557880,"uuid":"509638828","full_name":"secretflow/yacl","owner":"secretflow","description":"YACL (Yet Another Common crypto library) is a C++ library that contains cryptography, network and io modules which other SecretFlow code depends on.","archived":false,"fork":false,"pushed_at":"2024-11-12T12:56:28.000Z","size":5361,"stargazers_count":78,"open_issues_count":19,"forks_count":64,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-11-12T13:42:34.688Z","etag":null,"topics":["crypto","cryptography","cryptography-library","dpf","gm","lpn","oblivious-transfer","ot","psi","psu","secure-computation","svole","vole"],"latest_commit_sha":null,"homepage":"https://www.secretflow.org.cn/en/docs/yacl/main/","language":"C++","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/secretflow.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-02T02:35:14.000Z","updated_at":"2024-11-11T11:36:21.000Z","dependencies_parsed_at":"2023-02-09T19:15:57.633Z","dependency_job_id":"89a99d9f-f233-4d88-a8e7-2c51d6c0f22d","html_url":"https://github.com/secretflow/yacl","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/secretflow%2Fyacl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/secretflow%2Fyacl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/secretflow%2Fyacl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/secretflow%2Fyacl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/secretflow","download_url":"https://codeload.github.com/secretflow/yacl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224727045,"owners_count":17359530,"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":["crypto","cryptography","cryptography-library","dpf","gm","lpn","oblivious-transfer","ot","psi","psu","secure-computation","svole","vole"],"created_at":"2024-08-03T03:00:59.428Z","updated_at":"2025-12-26T05:30:21.585Z","avatar_url":"https://github.com/secretflow.png","language":"C++","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# YACL (Yet Another Common crypto Library)\n\n[![CircleCI](https://dl.circleci.com/status-badge/img/gh/secretflow/yacl/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/secretflow/yacl/tree/main)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/secretflow/yacl/badge)](https://securityscorecards.dev/viewer/?uri=github.com/secretflow/yacl)\n\nYacl is a C++ library that contains common cryptgraphy, network and io modules which other SecretFlow code depends on. The crypto modules in Yacl implement many state-of-art secure computation protocols, including primitives like OT, VOLE, TPRE, and tools like PRG, RO. Check the full list of Yacl's supported algorithms in [ALGORITHMS.md](ALGORITHMS.md).\n\nSupported platforms:\n| Linux x86_64 | Linux aarch64 | macOS x86_64   | macOS Apple Silicon | Windows x86_64 | Windows WSL2 x86_64 |\n|--------------|---------------|----------------|---------------------|----------------|---------------------|\n| yes          | yes           | yes\u003csup\u003e1\u003c/sup\u003e| yes                 | no             | yes\u003csup\u003e1\u003c/sup\u003e     |\n\n1. Yacl has not been thoroughly tested on these platforms.\n\n## Repo Layout\n\n- [base](yacl/base/): some basic types and utils in yacl.\n- [crypto](yacl/crypto/): **crypto algorithms** without [link](yacl/link/).\n- [kernel](yacl/kernel/): **crypto kernel** that includes [link](yacl/link/) with (WIP) multi-thread support, i.e. OT, DPF.\n- [io](yacl/io/): a simple streaming-based io library.\n- [link](yacl/link/): a simple rpc-based MPI framework, providing the [SPMD](https://en.wikipedia.org/wiki/SPMD) parallel programming capability.\n\n## Prerequisites\n\n- **bazel**: [.bazeliskrc](.bazeliskrc) sets the recommended version of bazel. We recommend to use the official [bazelisk](https://github.com/bazelbuild/bazelisk?tab=readme-ov-file#installation) to manage bazel version.\n- **gcc \u003e= 10.3**\n- **[cmake](https://cmake.org/getting-started/)**\n- **[ninja/ninja-build](https://ninja-build.org/)**\n- **Perl 5 with core modules** (Required by [OpenSSL](https://github.com/openssl/openssl/blob/master/INSTALL.md#prerequisites))\n\n## Getting Started\n\nYacl uses the [bazel](https://bazel.build/) build system, you may use the following codes to build and test yacl modules. For more guidelines about **how to develop on yacl**, please check the [Getting Started Guide](GETTING_STARTED.md).\n\n## License\n\nSee [LICENSE](LICENSE) and [NOTICE.md](NOTICE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsecretflow%2Fyacl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsecretflow%2Fyacl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsecretflow%2Fyacl/lists"}