Skip to content

Latest commit

 

History

History
31 lines (27 loc) · 1.5 KB

TODO.md

File metadata and controls

31 lines (27 loc) · 1.5 KB

TODO List

  • We need more sophistication on Forwarder struct to handle h2c.

  • Cache using lru crate might be inefficient in terms of the speed.

    • Consider more sophisticated architecture for cache
    • Persistent cache (if possible).
    • More secure cache file object naming
    • etc etc
  • Improvement of path matcher

  • More flexible option for rewriting path

  • Refactoring

    • Split backend module into three parts

      • backend(s): struct containing info, defined for each served domain with multiple paths
      • upstream/upstream group: information on targeted destinations for each set of (a domain + a path)
      • load-balance: load balancing mod for a domain + path
  • Unit tests

  • Options to serve custom http_error page.

  • Traces and metrics using opentelemetry (tracing-opentelemetry crate)

  • Documentation

  • Client certificate

    • support intermediate certificate. Currently, only supports client certificates directly signed by root CA.
    • Currently, we took the following approach (caveats)
      • For Http2 and 1.1, prepare rustls::ServerConfig for each domain name and hence client CA cert is set for each one.
      • For Http3, use aggregated rustls::ServerConfig for multiple domain names except for ones requiring client-auth. So, if a domain name is set with client authentication, http3 doesn't work for the domain.
  • Make the session-persistance option for load-balancing sophisticated. (mostly done in v0.3.0)

    • add option for sticky cookie name
    • add option for sticky cookie duration
  • etc.