This is a high level overview of how the repository is laid out. Some major folders are listed below:
- benchmark_examples/: scripts for secretflow component benchmark.
- docker/: scripts to build secretflow release and dev docker images.
- docs/: documents written in reStructuredText, Markdown, Jupyter-notebook.
- examples/: examples of secretflow.
- secretflow/: the core library.
- component/: secretflow components.
- compute/: wrapper for pyarrow compute functions.
- data/: horizontal, vertical and mixed DataFrame and Ndarray (like pandas and numpy).
- device/: various devices and their kernels, such as PYU, SPU, HEU, etc.
- distributed/: logics related to Ray and RayFed.
- ic/: interconnection.
- kuscia/: adapter to kuscia.
- ml/: federated learning and split learning algorithms.
- preprocessing/: preprocessing functions.
- protos/: Protocol Buffers messages.
- security/: privacy related algorithms, such as secure aggregation, differential privacy.
- spec/: generated code of spec Protocol Buffers messages.
- stats/: statistics functions.
- tune/: functions related to tuners.
- utils/: miscellaneous utility functions.
- secretflow_lib/: some core functions written in C++ and their Python bindings.
- tests/: unit tests with pytest.