haproxy-api

Crates.iohaproxy-api
lib.rshaproxy-api
version0.8.2
sourcesrc
created_at2020-05-21 11:03:20.049755
updated_at2024-08-06 17:06:06.615538
descriptionHAProxy 2.8+ Lua API
homepage
repositoryhttps://github.com/khvzak/haproxy-api-rs
max_upload_size
id244055
size79,236
Alex Orlenko (khvzak)

documentation

https://docs.rs/haproxy-api

README

haproxy-api

Latest Version API Documentation

haproxy-api exposes HAProxy 2.8+ Lua API to use from Rust. In conjunction with mlua it allows to run Rust code in HAProxy as a Task/Converter/Fetcher/Service/etc. You can extend HAProxy on a safe and efficient way beyond Lua restrictions.

Async support

Asynchronous mode is supported using Tokio runtime. The HAProxy runtime is fully integrated with Tokio runtime using HAProxy queueing system and auxiliary tcp listener for async tasks readiness notifications.

A multi-threaded tokio runtime is automatically started when the first async function is executed.

Please check the async_serve_file example to see how to serve files asynchronously.

Usage

Please check our examples:

  • async serve file - How to serve files asynchronously
  • brotli - How to add brotli compression to HAProxy using filters API
  • simple - How to register fetches and converters

Restrictions

Executing HAProxy functions that require yielding is not supported (eg: core.sleep), and these functionality is not exposed. Although you can run them from Lua or using register_lua_* set of functions.

License

This project is licensed under the MIT license

Commit count: 45

cargo fmt