Embedthis ESP™ Features
ESP includes the following components:
- C Language web framework
- Model-View-Controller support
- Application and scaffold generator
- HTTP/1.1 and HTTP/2 server and client
- Documentation
- Samples
- Source code
Feature Overview
Web Framework
- Web page templates with inline C-code
- Full support for Single Page Applications like VueJS
- Transparent recompilation and browser triggered reload
- MVC web framework
- RESTful URI mapping and routing
- MDB and SQLite databases
- Session and cookie management
- Response caching
- JSON parser for JSON requests and responses
- AJAX and async request support
- WebSockets for full-duplex communications
- Integrated with Expansive for templating and tooling.
- Library of extension packages via Pak for package management.
- Library of application skeletons for specific environments.
Content Generation
- Quick-start application skeletons
- Install packages from a large library of ESP and 3rd party packages via the Pak Manager
- Scaffold generator
- Database migration generation and management
- Client side asset minimization and compression
- Batch compilation
HTTP Engine
- Based on the Embedthis HTTP Engine used in Appweb
- HTTP/1.1 and HTTP/2 support
- IPv4 and IPv6
- Multithreaded, event-based server
- Fast co-routine request pipeline
- RESTful request routing with regular expression matching and rewriting
- Supports ranged, chunked and pipelined requests
- Efficient transmission via sendfile and vectored I/O
- Sand-box resource limits
- Monitoring and defensive counter-measures
Performance
- Request throughput (> 40,000 requests per second on PC class system)
- Multi-threaded, event-based core
- Small memory footprint even under heavy load (from 1MB)
Modularity
- Dynamic loading and reloading of applications, pages and controllers
- Configurable request routing
- Extensible/replaceable authorization and SSL
Security
- Secure Sockets Layer (SSL)
- Basic and Digest Authentication
- Route based authorization
- User authentication and role-based security
- XSRF tokens to minimize CSRF threats
- Sandbox limits
- Access and access violation logging
- Safe portable runtime to protect against buffer overflows
- Garbage collector to eliminate memory leaks
Developer Support
- Extensive C API
- Extensive debug trace logging
Documentation
- Full C API Documentation
- Guides and programmer reference
- Cookbook of samples (cut and paste to get going)
- Tutorials
Platform Support
- Linux (4 and later)
- Windows (10 and later)
- Mac OSX (10.10 and later)
- VxWorks (6.X and 7.X)
- Free BSD (10.X)
- Packaged installations for Windows and Mac OSX
Embedding Support
- Supports Arm, Mips, X86, X64 and Sparc processors
- Full cross-compilation support. Use Windows, Linux or Mac as build system
- Fine-grained control for conditional build and compilation