2 Star 9 Fork 1

隐语SecretFlow / yacl

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

YACL (Yet Another Common crypto Library)

CircleCI OpenSSF Scorecard

Yacl 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.

Supported platforms:

Linux x86_64 Linux aarch64 macOS x86_64 macOS Apple Silicon Windows x86_64 Windows WSL2 x86_64
yes yes yes1 yes no yes1
  1. Yacl has not been thoroughly tested on these platforms.

Repo Layout

  • base: some basic types and utils in yacl.
  • crypto: crypto algorithms without link.
  • kernels: crypto kernels that includes link with multi-thread support, i.e. OT, DPF.
  • io: a simple streaming-based io library.
  • link: a simple rpc-based MPI framework, providing the SPMD parallel programming capability.

Prerequisites

Build & UnitTest

# build as debug
bazel build //... -c dbg

# build as release
bazel build //... -c opt

# test
bazel test //...

# [optional] build & test with ASAN if you're not on MacOS
bazel build //... -c dbg --config=asan
bazel test //... --config=asan -c dbg

# [optional] build & test with ASAN on MacOS
bazel build //... -c dbg --config=macos-asan
bazel test //... --config=macos-asan -c dbg

License

See LICENSE and NOTICE.md

header: # <1> license: spdx-id: Apache-2.0 # <2> copyright-owner: Ant Group Co., Ltd. # <3> copyright-year: '2024' # <25> software-name: secretflow # <4> pattern: | # <6> Licensed under the Apache License, Version 2.0 \(the "License"\); you may not use this file except in compliance with the License. You may obtain a copy of the License at http[s]?://www\.apache\.org/licenses/LICENSE-2\.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. paths: # <7> - '**' paths-ignore: # <8> - '.circleci' - '.github' - '**/*.md' - '**/*.json' - '**/*.yaml' - '**/*.yml' - '**/*.patch' - '**/*.lds' - '**/*.csv' - 'LICENSE' - 'NOTICE' - '.bazelversion' - '.clang-format' - '.clang-tidy' - '.gitattributes' - '.gitignore' - '.gitmodules' - 'yacl/base/dynamic_bitset.h' # MIT - 'yacl/crypto/aes/aes_intrinsics.h' - 'yacl/crypto/aes/aes_opt.h' comment: never # <9> license-location-threshold: 80 # <10> language: # <11> Starlark: # <12> extensions: #<13> - ".bazel" - ".bazelrc" - "BUILD" - ".bzl" - "WORKSPACE" comment_style_id: PythonStyle # <15> Cpp: extensions: - ".cc" - ".h" - ".cu" comment_style_id: DoubleSlash

简介

A C++ library that contains cryptgraphy, network and io modules which other SecretFlow code depends on. 展开 收起
C++ 等 3 种语言
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C++
1
https://gitee.com/secretflow/yacl.git
git@gitee.com:secretflow/yacl.git
secretflow
yacl
yacl
main

搜索帮助