scql

module
v0.0.0-...-e0c7ee5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2024 License: Apache-2.0

README

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
# prerequisite
# spu needs numpy
pip install numpy

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

Directories

Path Synopsis
cmd
pkg
executor
Package executor is a generated GoMock package.
Package executor is a generated GoMock package.
parser/ast
Package ast is the abstract syntax tree parsed from a SQL statement by parser.
Package ast is the abstract syntax tree parsed from a SQL statement by parser.
parser/goyacc
Goyacc is a version of yacc generating Go parsers.
Goyacc is a version of yacc generating Go parsers.
scdb/client
Package client is a generated GoMock package.
Package client is a generated GoMock package.
util/brokerutil
Due to circular references, please avoid moving this file to testutil.
Due to circular references, please avoid moving this file to testutil.
proto-gen

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL