Project Bes is a foundational framework for building a high-performance C++ microservices environment. It contains application templates and an infrastructure that allows you to:
- Communicate easily with the gRPC and Protobuf messages
- Handle to HTTP requests with integrated FastCGI
- Respond to HTTP requests with an high-speed Jinja2-style templating engine
- Distribute quickly in a containerised environment such as Kubernetes
- Be cloud-friendly and cloud-provider agnostic
A core value of this project, in order to ensure stability and high-performance:
- Don't trust random library producers
As such, an absolute minimal external dependency list is mandatory for this project. Dependencies that do make it in must be highly trusted and/or only touch non-critical components.
See the Development Log for ongoing discussion on the development and strategy of the framework.
- Contributing - Includes code styles & naming conventions.
- Building
- Testing
- Performance
- Learning Resources
- Application Kernel
- Core
- DBAL
- FastCGI
- Log
- Net
- Service (gRPC abstraction)
- Templating
- Web
Core dependencies:
- gRPC
- Nexus of RPC applications
Non-critical dependencies:
- YAML C++:
- Reading application config files
- Loading routes into a
MappedRouter
(optional)
- CPP Redis:
- For Redis session support
- GTest:
- Running test suites
DBAL Requirements:
- Cassandra: Drivers are required on the OS; see the prerequisites in the building documentation
- BigTable: Google Cloud APIs are included as a project dependency