ESP™ Specifications
The ESP product includes the following components:
- C language Model-View-Controller web framework
- Application and scaffold generator
- HTTP/1.1 server and client
- HTTP/2 server and client
- Documentation
- Samples
- Source code
Feature Overview
Web Framework
- MVC web framework
- MDB and SQLite databases
- RESTful URI mapping and routing
- Transparent recompilation and reload (browser reload triggered)
- Session and cookie management
- Web page templates with inline C-code and master layout pages
- Response caching
- JSON parser supporting JSON requests and responses
- AJAX and async request support
- AngularJS support
- Integrated with the Pak package manager for zero-configuration use of client libraries
Content Generation
- Application generator
- Scaffold generator
- Database migration generation and management
- Library of extensions via the Pak package manager and catalog
- Client side asset minimization and compression
- Batch compilation
- Packaging applications into single executable
Appweb HTTP Engine
- Full HTTP/1.1 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
- Virtual Hosting. IP-based and Name-based
- Error and access Logging (Common Log Format)
- Flexible JSON configuration
- Sand-box resource limits
- Monitoring and defensive counter-measures
Performance
- Request throughput (> 40,000 requests per second on Macbook Pro)
- Multi-threaded, event-based core for scale and blocking requests
- 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
- Online community support forum
Documentation
- Full "C" API Documentation
- Guides and programmer reference
- Cookbook of samples (cut and paste to get going)
- Tutorials
Platform Support
- Linux (2.6 and later)
- Windows (7 and later)
- Mac OSX (10.7 and later)
- VxWorks (6.X)
- Free BSD (10.X)
- Packaged installations for Windows and MAC OSX
Embedding Support
- Supports ARM, MIPS, X86, PPC and Sparc processors
- Full cross-compilation support. Use Windows, Linux or Mac as build system
- Fine-grained control for conditional build and compilation
- Execute from ROM (XIP)