These samples show how to write a new application or port an existing one to Edgeless RT.
- helloworld is a minimal example of an enclave application written in C.
- stdc++ shows how to link against
stdc++
so that you can use (most of) the C++17 STL and link against libraries that usestdc++
. - go is a minimal example of an enclave application written in Go.
- go_ra shows how to do remote attestation of a Go enclave.
- vault demonstrates how to port a Go application exemplified by Hashicorp Vault.
- rust is a minimal example of an enclave application written in Rust.
erthost
is a tool that is used to run enclaves. The samples show how to use it.
During development, link your enclave against ertdeventry
. Then erthost
will transparently forward all commandline arguments and environment variables to the enclave application. The enclave has unlimited access to the host's filesystem.
Once your application is ready to go into production, you can either switch to MarbleRun or write a custom enclave entry function. The helloworld sample includes an example of the latter.
MarbleRun is the preferred way to run enclave applications in production: it seamlessly integrates with Edgeless RT and enables the creation of distributed confidential applications.