This directory contains sample projects that demonstrate how Occlum can be used to build and run user applications.
This set of demos shows how the Occlum toolchain can be used with different build tools.
- hello_c: A sample C project built with Makefile/CMake.
- hello_cc: A sample C++ project built with Makefile/CMake.
- hello_bazel: A sample C++ project built with Bazel.
This set of demos shows how real-world apps can be easily run inside SGX enclaves with Occlum.
- bash: A demo of Bash shell script.
- cluster_serving: A demo of Analytics Zoo Cluster Serving inference solution.
- fish: A demo of FISH shell script.
- flink: A demo of Apache Flink.
- font: A demo of supporting font with Java.
- grpc: A client and server communicating through gRPC, containing glibc-supported demo and musl-supported demo.
- https_server: A HTTPS file server based on Mongoose Embedded Web Server Library.
- mysql: A demo of MySQL.
- openvino A benchmark of OpenVINO Inference Engine.
- pytorch: Demos of standalone and distributed PyTorch.
- paddlepaddle: A demo of PaddlePaddle.
- redis: A demo of Redis.
- sofaboot: A demo of SOFABoot, an open source Java development framework based on Spring Boot.
- sqlite A demo of SQLite SQL database engine.
- tensorflow: A demo of TensorFlow MNIST classification training.
- tensorflow_lite: A demo and benchmark of TensorFlow Lite inference engine.
- tensorflow_serving: A demo of TensorFlow Serving
- vault: A demo of HashiCorp Vault.
- xgboost: A demo of XGBoost.
This set of demos shows how commonly used benchmarking tools can be run inside SGX enclaves with Occlum.
- fio: A demo of Flexible I/O Tester.
- iperf2: A demo of Iperf2, a tool for measuring Internet bandwidth performance.
- iperf3: A demo of Iperf3, a tool for measuring Internet bandwidth performance.
- sysbench: A demo of Sysbench, a scriptable multi-threaded benchmark tool for Linux.
This set of demos shows how apps written with popular programming languages can be run inside SGX enclaves with Occlum.
- golang: A collection of Golang program demos.
- java: A demo of Java program.
- python A collection of Python program demos, contain glibc-supported python demo and musl-supported python demo.
- rust A demo of Rust program.
- embedded_mode: A cross-enclave memory throughput benchmark enabled by the embedded mode of Occlum.
- enclave_tls: Running TLS server inside Occlum. Client connects with server associate with Enclave-RA information.
- gdb_support: This demo explains the technical detail of GDB support and demonstrates how to debug an app running upon Occlum with GDB.
- local_attestation: This project demonstrates how an app running upon Occlum can perform SGX local attestation.
- remote_attestation: This project demonstrates how an app running upon Occlum can perform SGX remote attestation.