|
1 | | -# Teaclave SGX SDK v2.0 preview |
| 1 | +# Teaclave SGX SDK |
2 | 2 |
|
3 | | -Teaclave SGX SDK v2.0 is a revamped version. It is much more developer friendly |
4 | | -compared to v1.1. |
| 3 | +[](LICENSE) |
| 4 | +[](https://teaclave.apache.org/) |
5 | 5 |
|
6 | | -- supports `cargo build` + `no_std`, `xargo build` and `cargo-std-aware` mode. |
7 | | -- Tokio and Tonic is directly available to enclave programming without any change. |
8 | | -- Refactored Intel's SDK using Rust. Only a small portion of Intel's SDK is required. |
9 | | -- Improved testing framework. `sgx_tstd` is well tested now. |
10 | | -- No need to maintain 100+ 3rd party dependencies. Most dependencies are `use`-able without any change. |
| 6 | +**Apache Teaclave SGX SDK** is a Rust SDK for developing Intel SGX applications. It enables developers to write secure, privacy-preserving applications using Intel Software Guard Extensions (SGX) technology with the safety and performance benefits of the Rust programming language. |
11 | 7 |
|
12 | | -## Build system |
| 8 | +## Overview |
13 | 9 |
|
14 | | -We still maintain the legacy `no_std` cargo build support, and `xargo build` with a customized sysroot. v2.0 supports `cargo-std-aware` as well. |
| 10 | +The Apache Teaclave SGX SDK provides a comprehensive development environment for building Intel SGX enclaves in Rust. The current version (v2.0) offers significant improvements over the [legacy v1.1](https://github.com/apache/incubator-teaclave-sgx-sdk/tree/master) , including: |
15 | 11 |
|
16 | | -To switch from these build modes, please specify |
17 | | -- `BUILD_STD=no` to use traditional `no_std` cargo build |
18 | | -- `BUILD_STD=cargo` (default setting) to use the new std aware cargo build |
19 | | -- `BUILD_STD=xargo` to use xargo build |
| 12 | +- **Modern Build System**: Supports `cargo build` with `no_std`, `xargo build`, and `cargo-std-aware` modes |
| 13 | +- **Rich Ecosystem**: Direct support for Tokio and Tonic in enclave programming without modifications |
| 14 | +- **Lightweight Architecture**: Refactored Intel's SGX SDK using Rust, requiring only a minimal portion of Intel's original SDK |
| 15 | +- **Robust Testing**: Comprehensive testing framework with well-tested `sgx_tstd` standard library |
| 16 | +- **Simplified Dependencies**: Eliminates the need to maintain 100+ third-party dependencies; most Rust crates work without modifications |
20 | 17 |
|
| 18 | +## Build System |
21 | 19 |
|
22 | | -## Samples |
| 20 | +The SDK supports multiple build modes to accommodate different development preferences: |
23 | 21 |
|
24 | | -We are still working on porting all v1.1 samples to v2.0. Current available samples include: |
| 22 | +- **`BUILD_STD=cargo`** (default): Uses the new std-aware cargo build system |
| 23 | +- **`BUILD_STD=no`**: Traditional `no_std` cargo build for minimal footprint |
| 24 | +- **`BUILD_STD=xargo`**: Uses xargo build with customized sysroot |
25 | 25 |
|
26 | | -- backtrace |
27 | | -- cov |
28 | | -- crypto |
29 | | -- hellworld |
30 | | -- httpreq |
31 | | -- hyper-rustls-https-server |
32 | | -- logger |
33 | | -- regex |
34 | | -- rpc (Tonic + Tokio) |
35 | | -- seal |
36 | | -- switchless |
37 | | -- zlib-lazy-static-sample |
| 26 | +## Sample Applications |
| 27 | + |
| 28 | +The following sample applications demonstrate various SGX SDK capabilities: |
| 29 | + |
| 30 | +- **backtrace**: Stack trace functionality in SGX enclaves |
| 31 | +- **cov**: Code coverage analysis tools |
| 32 | +- **crypto**: Cryptographic operations within enclaves |
| 33 | +- **helloworld**: Basic SGX enclave example |
| 34 | +- **httpreq**: HTTP client functionality |
| 35 | +- **hyper-rustls-https-server**: HTTPS server using Hyper and Rustls |
| 36 | +- **logger**: Logging capabilities for SGX applications |
| 37 | +- **regex**: Regular expression processing |
| 38 | +- **rpc**: Remote procedure calls using Tonic and Tokio |
| 39 | +- **seal**: Data sealing and unsealing operations |
| 40 | +- **switchless**: Switchless call optimization |
| 41 | +- **zlib-lazy-static-sample**: Compression with lazy static initialization |
| 42 | + |
| 43 | +*Note: Migration of additional v1.1 samples to v2.0 is ongoing.* |
| 44 | + |
| 45 | +## Getting Started |
| 46 | + |
| 47 | +For detailed installation instructions, development guides, and API documentation, please visit: |
| 48 | + |
| 49 | +- **Project Website**: [https://teaclave.apache.org/](https://teaclave.apache.org/) |
| 50 | +- **Documentation**: [Teaclave SGX SDK Documentation](https://teaclave.apache.org/sgx-sdk-docs/) |
| 51 | +- **API Reference**: [Teaclave SGX SDK API Reference](https://teaclave.apache.org/api-docs/sgx-sdk/) |
| 52 | + |
| 53 | +## Contributing |
| 54 | + |
| 55 | +Teaclave is developed in the open following [The Apache Way](https://www.apache.org/theapacheway/). We strive to maintain a project that is community-driven and inclusive. |
| 56 | + |
| 57 | +We welcome all forms of contributions. Please refer to our [Contributing Guide](https://teaclave.apache.org/contributing) for more information. A big thank-you to all our [contributors](https://teaclave.apache.org/contributors/)! |
| 58 | + |
| 59 | +## Community |
| 60 | + |
| 61 | +- 📬 Join our [mailing list ](https://lists.apache.org/[email protected]) |
| 62 | +- 🐦 Follow us on [Twitter @ApacheTeaclave](https://twitter.com/ApacheTeaclave) |
| 63 | +- 🌐 Learn more at [teaclave.apache.org/community](https://teaclave.apache.org/community/) |
0 commit comments