# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased](https://git.rustybever.be/Chewing_Bever/lander/src/branch/dev) ### Added * LSM * Binary tree iterators * Trie iterators * Store iterators * LTM - Lander Template Library * Simple string templates * Fully streamable template instances * Lander * Simple paste pages with syntax highlighting * Index pages that group elements under the same namespace into an overview ## [0.2.1](https://git.rustybever.be/Chewing_Bever/lander/src/tag/0.2.1) ### Added * LNM - Lander Network Module * Rewrite of the event loop & HTTP loop * Fully independent library, maintained in its own repository * Numerous improvements * Streaming of headers * Allow custom & an arbitrary number of response headers * Better API for adding routes * State machine HTTP loop * Automatically support HEAD requests for all GET requests * Event loop uses `epoll` instead of `poll` * Configurable multithreading using `epoll` * Trie-based router (no more RegEx) * Landerctl * `-c` flag to use custom config file (useful for testing) ## Removed * Content-Disposition header for files * Secure routes with a specified key (e.g. `/sl/:key`), as these were identical to `/s/:key` routes ## [0.2.0](https://git.rustybever.be/Chewing_Bever/lander/src/tag/0.2.0) ### Added * HTTP Loop * Fully decoupled functionality from Lander-specific code * Users can now define custom global & request-local contexts * Introduced "response steps", allowing custom code during the response part of a request * LSM - Lander Storage Module * Rewrite of trie codebase * Introduced a custom data store using an in-memory trie as index and a custom binary on-disk format * Support for lookup, insert & a basic remove * Lander * Replaced old trie implementation with LSM store * Add support for hosting arbitrary files * Content type of file is set if provided when uploading file * Support removing entries * Landerctl * Replaced old Bash script with Libcurl-based application * Supporting posting redirects, pastes & arbitrarily large files ## [0.1.0](https://git.rustybever.be/Chewing_Bever/lander/src/tag/0.1.0) ### Added * Implemented own event & HTTP loop (used Crow framework before) * Serve redirects & pastes * Support uploading pastes & redirects * Env vars for configuring data dir and port