Extremely lightweight, full HTTP Server implementation for embedded devices and microcontrollers.
Elysian is a free, open source, lightweight HTTP server implementation written entirely in C. The focus of the implementation is to reduce resource usage while still providing an almost full-scale HTTP Server, making it suitable for use in memory-constrained embedded devices where memory and CPU power are at a premium. The Web Server allows to serve user-friendly HTML pages with images and data enabling embedded monitoring and control functionality into the deployed TCP/IP enabled appliances.
Elysian is not intended to be used as a feature-packed server; since it focuses strictly on embedded microcontrollers (typically equipped with some tens of KB of RAM), high level server side scripting languages (PHP, LUA) will not be supported. Dynamic content is supported by adopting the MVC design pattern, using C functions as controllers.
Supported features include:
- Small footprint: requires ~70kb FLASH and ~5kb RAM
- Much emphasis on ease of use, easy integration and power consumption
- Support for dynamic content using the model-view-controller (MVC) design pattern
- Single thread / Μultiple client implementation
- Extremely robust: Εxponential backoff mechanism resolves any temporary memory or network unavailability issues.
- Support for GET/HEAD/POST/PUT HTTP requests
- Support for multipart HTTP requests for file uploading.
- Chunked transfer encoding and decoding
- HTTP pipelining and keep-alive connections
- Websockets v13 (RFC 6455)
- Support for HTTP requests with expectation
- Support for multiple memory devices: Files can be stored to ROM, RAM, or External memory device (etc SD-Card, USB, Hard Disk)
- Bounded memory usage
- Single demo application demonstrating the whole API.
- Ported OS enviroments: FreeRTOS, ChibiOS, Unix, Windows
- Ported TCP\IP enviroments: LwIP, Unix, Windows
- Ported filesystems: FatFS, Unix, Windows
- Open a terminal and navigate to "examples/api_demo"
- Issue "make plat=linux"
- Run the "./elysian.out" executable.
- Open a browser and navigate to "http://localhost:9000"
- Open cmd and navigate to "examples/api_demo"
- Issue "mingw32-make make plat=windows"
- Run the "elysian.out" executable.
- Open a browser and navigate to "http://localhost:9000"