lua-http v0.1 released

I’m happy to announce the first release of lua-http!

lua-http is a library that hopes to provide all HTTP operations you should ever need. In addition to all the low-level parsing and serialising operations you might expect, lua-http provides high level interfaces for writing your own HTTP server or performing HTTP requests. I’d endeavoured to make behaviour as configurable as possible yet have sensible defaults.

Features:

Support for HTTP versions 1, 1.1 and 2 (yes! HTTP/2 support)

Provides both client and server APIs

Friendly request API with sensible defaults for security

All operations are fully non-blocking and can be managed with cqueues

Support for WebSockets (client and server), including ping/pong, binary data transfer and TLS encryption.

Transport Layer Security (TLS) - lua-http supports HTTPS and WSS via luaossl.

luasocket compatibility API if you’re looking to use lua-http with older projects.

Check the manual to learn the API, or read through and run the samples in the ‘examples/’ directory in the source tree.

This release has been a long time in the making! For an unreleased library it already has over a hundred stars on Github, and has had contributions from 5 others. I’d like to give a special thanks to @RussellHaley, @ChickenNuggers, @leafo, @vavrusa and @torhve for being early users and providing feedback, as well as @wahern for dealing with all my cqueues and luaossl feature requests.

Links: