Version 1.6 of package Simple-Httpd has just been released in NonGNU ELPA. You can now find it in M-x list-packages RET.
Simple-Httpd describes itself as: ====================== Pure Elisp HTTP server ====================== More at https://elpa.nongnu.org/nongnu/simple-httpd.html ## Summary: ━━━━━━━━━━━━━━ SIMPLE-HTTPD ━━━━━━━━━━━━━━ A simple Emacs web server. This used to be `httpd.el' but there are already several of these out there already of varying usefulness. The server can serve files, directory listings and custom servlets. Client requests are sanitized, but the server is vulnerable to denial of service attacks, so it should only be used for local development or automation. We make no guarantees regarding security. This package is available on [MELPA] and [ELPA]. [MELPA] <https://melpa.org/> [ELPA] <https://nongnu.elpa.org/> 1 Usage ═══════ ## Recent NEWS: Version 1.6 (2026-05-19) ════════════════════════ • Depend on Compat, update for new Emacs versions. • `httpd-servlet', `httpd-servlet*', `httpd-file-servlet', `httpd-with-buffer': Alternative name for `defservlet', `defservlet*', `httpd-def-file-servlet' and `with-httpd-buffer' respectively. • `httpd-log-buffer': New customizable variable for the log buffer. Optimize `httpd-log' if the log buffer is disabled. • `httpd-html', `httpd-error': Numeric and textual status code are passed as arguments to `format'. Add default error page. • Store server and client processes and shutdown all processes in `httpd-stop'. • Parse body as arguments only for mime type `application/x-www-form-urlencoded'. • Reduce creation of temporary buffers and improve performance. • Improve parser robustness with additional checks. • Improve asynchronous request handling, maintaining a queue of requests. Version 1.5.1: improvements ═══════════════════════════ • Add `httpd-running-p' • Properly handle "Connection: close" and HTTP/1.0 Version 1.5.0: improvements ═══════════════════════════ • Drastically improved performance for large requests • More HTTP status codes Version 1.4.6: fixes ════════════════════ • Added httpd-serve-directory • Fix some encoding issues Version 1.4.5: fixes ════════════════════ • Update to cl-lib from cl Version 1.4.4: features ═══════════════════════ • Common Lisp &key-like defservlet* argument support • Fix up some defservlet* usage warnings. Version 1.4.3: features ═══════════════════════ • Add `httpd-discard-buffer' • Add `httpd-def-file-servlet' • Be more careful about not sending extra headers Version 1.4.2: features, fixes ══════════════════════════════ • `defservlet*' macro Version 1.4.1: small bug fixes, one feature ═══════════════════════════════════════════ • All mime-type parameters now accept string designators • Documentation update Version 1.4.0: features, API change, and fixes ══════════════════════════════════════════════ • Removed httpd-send-buffer; httpd-send-header now does this implicitly • httpd-send-header now accepts keywords instead • Fix httpd-clean-path in Windows • Fix a content-length bug • defservlet fontification Version 1.3.1: features and fixes ═════════════════════════════════ • Set `standard-output' in `with-httpd-buffer' Version 1.3.0: security fix ═══════════════════════════ • Fix path expansion security issue • Fix coding system (don't default) Version 1.2.4: fixes ════════════════════ • Handle large POSTs • Fix date strings
