blob: a89cac7c3e2e78cb833deb6e0753826e64b9bacb [file] [log] [blame] [view]
---
permalink: /docs/codebase/function
---
# Built-in Functions
Since Teaclave is a FaaS-like platform, users can define and register customized
functions (e.g., written in Python). To make data computation more easier and
faster (in native speed), the platform also provide some commonly used functions
written in Rust. We call them built-in functions. These functions can be
selectively compiled in the *built-in executor* with a "builtin" prefix in the
function names. Users can selectively invoke these build-in functions by their
names.
Currently, we have these built-in functions:
- `builtin-echo`: Return the original input message.
- `builtin-gbdt-train`: Use input data to train a GBDT model.
- `builtin-gbdt-predict`: GBDT prediction with input model and input test data.
- `bulitin-logistic-regression-train`: Use input data to train a LR model.
- `builtin-logistic-regression-predict`: LR prediction with input model and input test data.
- `builtin-private-join-and-compute`: Find intersection of muti-parties' input
data and compute sum of the common items.
- `builtin-ordered-set-intersect`: Allow two parties to compute the
intersection of their ordered sets without revealing anything except for the
elements in the intersection. Users should calculate hash values of each item
and upload them as a sorted list.
- `builtin-ordered-set-join`: Allow two parties to combine their CSV files in a unique
and sorted column. The CSV files uploaded by users should be sorted by the specified
column.
- `builtin-rsa-sign`: Signing data with RSA key.
- `builtin-face-detection`: An implementation of Funnel-Structured cascade,
which is designed for real-time multi-view face detection.
- `builtin-principal-components-analysis`: Example to calculate PCA.
- `builtin-password-check`: Given a password, check whether it is in the
exposed password list.
The function arguments are in JSON format and can be serialized to a Rust struct
very easily. You can learn more about supported arguments in the implementation
of a specific built-in function.