Skip to content
/ scql Public
forked from secretflow/scql

SCQL (Secure Collaborative Query Language) is a system that allows multiple distrusting parties to run joint analysis without revealing their private data.

License

Notifications You must be signed in to change notification settings

commis/scql

 
 

Repository files navigation

SCQL

CircleCI

Secure Collaborative Query Language (SCQL) is a system that translates SQL statements into Secure Multiparty Computation (SMC) primitives and executes them on a federation of database systems.

SCQL Workflow

Contents

Build

Prerequisite

Docker

## start dev container
docker run -d -it --name scql-dev-$(whoami) \
         --mount type=bind,source="$(pwd)",target=/home/admin/dev/ \
         -w /home/admin/dev \
         --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
         --cap-add=NET_ADMIN \
         --privileged=true \
         secretflow/scql-ci:latest /bin/bash

# attach to dev container
docker exec -it scql-dev-$(whoami) bash

Build & UnitTest

# build SCQL engine as release
bazel build //engine/exe:scqlengine -c opt

# test

# run unittests for SCQL engine
bazel test //engine/...

# update scdb proto
make pb

# build scdb code
make

# run scdb unit tests
go test ./pkg/...

Build docs

# prerequisite
pip3 install -U -r docs/requirements.txt

# Build HTML docs, and the result is placed in directory 'docs/_build/html'
# Build documentation in English
make doc

# Build documentation in Chinese
make doc-cn

Hardware Requirements

The following requirements only apply to SCQLEngine.

  • CPU
    • x86_64: minimum required AVX instruction set. For FourQ based PSI, the AVX2 instruction set is required.

Disclaimer

Non-release versions of SCQL are prohibited to use in any production environment due to possible bugs, glitches, lack of functionality, security issues or other problems.

Acknowledgments

  • Thanks TiDB for providing a powerful SQL parser and planner.

About

SCQL (Secure Collaborative Query Language) is a system that allows multiple distrusting parties to run joint analysis without revealing their private data.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 73.4%
  • C++ 19.1%
  • Yacc 5.2%
  • Starlark 1.3%
  • Python 0.5%
  • Shell 0.3%
  • Other 0.2%