Embedded Web Server

SourceForge.net Logo


EWS is a web server construction kit, designed for embedded applications using the GNAT Ada compiler.

The project is hosted on SourceForge. You can see the releases, and you can browse the Mercurial repository.


EWS requires GNAT (GNAT GPL 2012 or later, FSF GCC 4.8.0 or later) and XML/Ada. GNAT GPL 2013 (and, hopefully, later) includes XML/Ada; earlier versions supply XML/Ada as source which has to be built and installed.

EWS's build process uses GNU Make, run from the command line. This will be available as "make" on Linux or Mac OS X systems, and on Windows systems running Cygwin.

Pure Windows systems

A suitable GNU Make for Windows is available at AdaCore (in the avr-elf-windows 2012 package). It's also been copied to Sourceforge.

The download (whose MD5 hash is f97b4a805d7ec4c63ad829c822c4c42b) is gnumake-3.79.1-pentium-mingw32msv.exe. Rename it to gmake.exe and place it in GNAT's bin directory (typically C:\GNAT\2013\bin).

Then, in a command window in the EWS distribution's top-level directory (ews-yyyymmdd\),

   > gmake

will build the library, and, in the doc\ directory (ews-yyyymmdd\doc\),

   > gmake demo

will create a server (ews_demo), which when executed will listen on port 8080 and respond with the web in the doc\ directory.

Unix-based systems

In the EWS distribution's top-level directory (ews-yyyymmdd/), make will build the library, and make demo will create a server in the doc/ directory (ews-yyyymmdd/doc/ews_demo), which when executed will listen on port 8080 and respond with the web in the doc/ directory.

The package can be installed with the compiler by make install (more likely, sudo make install). You can install in an alternative place by setting prefix, for example

   $ make install prefix=~/local


The facilities available in EWS, and the code for the demonstration, are described in this document, which also acts as the source code using the Literate Programming facilities of nuweb.py.


If you're seeing this page via the demonstration (ews_demo), you can view a page with AJAX content here.

Simon Wright