Skip to content

v0.1.0

Latest

Choose a tag to compare

@felixfaisal felixfaisal released this 02 Mar 18:31
ace877a

🎉 Initial Release of Fjall-SGX

Fjall-SGX is an encrypted LSM-tree key-value store designed to run inside Intel SGX enclaves. This initial release provides a functional database with HTTP REST API interface, suitable for development and testing in SGX simulation mode.

🚀 Features

Core Database Engine

  • LSM-Tree Architecture: Log-Structured Merge-tree with in-memory MemTable and persistent SSTables
  • SGX Enclave Protection: All sensitive data operations occur within the SGX trusted execution environment
  • Encryption at Rest: Data is encrypted before leaving the enclave boundary (prepared for future hardware mode)
  • Memory Management: Configurable MemTable size with automatic flushing to SSTables
  • Storage Abstraction: Pluggable storage backends via trait-based design

HTTP REST API Server

  • Simple HTTP Interface: Built with tiny_http for minimal dependencies
  • RESTful Endpoints:
    • PUT /kv/<key> - Store key-value pairs
    • GET /kv/<key> - Retrieve values by key
    • DELETE /kv/<key> - Delete key-value pairs
    • GET /health - Health check endpoint
  • JSON Error Responses: Structured error messages for better debugging
  • Logging: Comprehensive logging with env_logger (RUST_LOG support)

SGX Integration

  • Simulation Mode Support: Works in SGX_MODE=SW for development without hardware
  • Conditional Compilation: Feature flags for SW vs HW mode
  • Untrusted File I/O: Direct filesystem access from enclave using std::untrusted::fs
  • Enclave Configuration:
    • 128MB heap size for database operations
    • 8MB stack size
    • 10 TCS threads for concurrent operations

Developer Experience

  • Docker Support: Pre-built Docker images for easy deployment
  • Comprehensive Documentation: README, API docs, and architecture guides
  • Test Scripts: Automated testing with test_api.sh
  • Makefile Build System: Simple make command to build entire project

📦 Docker Release

Pre-built Docker images are now available on Docker Hub:

docker pull felixfaisal/fjall-sgx:latest
docker run -p 8080:8080 -ti felixfaisal/fjall-sgx:latest

Image Details:

  • Base: Ubuntu 20.04
  • SGX SDK: v2.17.1
  • Rust: nightly-2023-11-17
  • Size: ~4GB (includes full SGX development environment)
  • Mode: Software simulation (SGX_MODE=SW)

The Docker image automatically:

  1. Starts the AESM service
  2. Builds the project from source
  3. Launches the HTTP server on port 8080

🙏 Acknowledgments