ETag and HTTP Caching

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. hashfs

    Implementation of io/fs.FS that appends SHA256 hashes to filenames to allow for aggressive HTTP caching.

    An approach like https://github.com/benbjohnson/hashfs allows file names to be updated at runtime to be content hashed. This removes the need for the extra "304 Not Modified" API calls from the client. This content hash based file renaming is usually done using a build step which renames files. For applications where the static file serving and HTTP request processing are done in the same application, this can be done in memory without a build step for file renames.

    I am using that approach in my project https://github.com/claceio/clace. It removes the need for a build step while making aggressive static file caching possible.

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. clace

    Application server for deploying containerized web apps. Easily deploy internal tools across a team.

    An approach like https://github.com/benbjohnson/hashfs allows file names to be updated at runtime to be content hashed. This removes the need for the extra "304 Not Modified" API calls from the client. This content hash based file renaming is usually done using a build step which renames files. For applications where the static file serving and HTTP request processing are done in the same application, this can be done in memory without a build step for file renames.

    I am using that approach in my project https://github.com/claceio/clace. It removes the need for a build step while making aggressive static file caching possible.

  4. xtemplate

    A html/template-based hypertext preprocessor and rapid application development web server written in Go. (by infogulch)

    I've also been dissatisfied with http caching not utilizing content hashes enough. If you're using server side templating one issue is that it's not efficient to calculate the hash while you're running the template, it would need to be precalculated to be efficient enough to use.

    So I wrote https://github.com/infogulch/xtemplate to scan all assets at startup to precalculate the hash for templates that use it, and if a request comes in with a query parameter ?hash=sha384-xyz and it matches then it gives it a 1 year immutable Cache-Control header automatically. If a file x.ext has a matching x.ext.gz/x.ext.zst/x.ext.br file then (after hashing the content to make sure it matches) client requests that support it are sent a compressed version streamed directly from disk with sendfile2. I call this "Optimal asset serving" (a bit bold perhaps).

  5. xxHash

    Extremely fast non-cryptographic hash algorithm

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Breaking CityHash64, MurmurHash2/3, wyhash, and more

    3 projects | news.ycombinator.com | 3 Nov 2024
  • Day 64: Implementing a basic Bloom Filter Using Java BitSet api

    1 project | dev.to | 30 Dec 2022
  • Closed-addressing hashtables implementation

    2 projects | /r/C_Programming | 22 Dec 2022
  • NIST Retires SHA-1 Cryptographic Algorithm

    3 projects | news.ycombinator.com | 15 Dec 2022
  • Does the checksum algorithm crc32c-intel support AMD Ryzen series 3000 or newer?

    1 project | /r/btrfs | 12 Nov 2022

Did you know that Go is
the 4th most popular programming language
based on number of references?