RFC: proxy.dhall-lang.org


I’m thinking of building a proxy.dhall-lang.org server which can be used as a caching forward proxy that all Dhall implementations can benefit from

The initial motivation for this is the dhall-kubernetes project, which takes a while to import from a cold cache if you are importing the project remotely. Using a forward proxy can reduce the number of HTTP requests from hundreds of requests to just one request.

Here is the idea:

  • If proxy.dhall-lang.org is reachable the interpreter can optionally use it as a forward proxy

    For the Haskell implementation I’m thinking of making this the default with an option to disable

  • The interpreter can also include an HTTP header containing an integrity check for the import if one is present

  • The proxy then caches imports protected by integrity checks

    … with a size limit per cached import and also a global size limit

    The cache key would be the multihash for the integrity check (e.g. 1220…)


+1 to this idea.

It sounds very similar to Go’s proxy (docs and useful blog post) which I’ve had nothing but positive experiences with.