lander/CHANGELOG.md

2.3 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

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

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

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