Tidal_

Docs

From a build directory to a cached, integrity-checked URL in three steps.

Install the CLI

The tdl binary is a single static executable for Linux, macOS and Windows.

$ npm install -g @tidal/tdl
$ tdl --version
tdl 5.2.0

Publish a release

Point tdl publish at your build output and give it a name and a semver. Files land on an immutable path and cannot be overwritten.

$ tdl publish ./dist --pkg lumen --version 3.4.1
# files become available at
# https://cdntidal.com/v/lumen/3.4.1/<file>
Re-publishing an existing version with different content fails with 409 version_locked. Bump the version instead.

Link with integrity

Digests are printed on publish and available at any time by appending ?meta to a file URL.

<link rel="stylesheet" href="https://cdntidal.com/v/lumen/3.4.1/lumen.min.css"
  integrity="sha384-oQ3vF9mZk2LxT8bYcR1wNpJd7sHuA4eGiK0tVyXq6BzMfUhC5nWlOaPrDgSjE+1/"
  crossorigin="anonymous">
$ curl -s "https://cdntidal.com/v/lumen/3.4.1/lumen.min.js?meta"
{"size":58214,"br":17402,"sha384":"sha384-oQ3vF9mZk2LxT8bYc…"}

Cache behaviour

PathCache-ControlEdge TTL
/v/<pkg>/<semver>/…public, max-age=31536000, immutableuntil evicted
/a/<pkg>/<channel>public, max-age=6060 s
unknown pathno-store—

Every response also sets Access-Control-Allow-Origin: *, Cross-Origin-Resource-Policy: cross-origin and an ETag equal to the file digest.

Response headers

$ curl -sI https://cdntidal.com/v/lumen/3.4.1/lumen.min.js
HTTP/2 200
content-type: text/javascript; charset=utf-8
content-encoding: br
cache-control: public, max-age=31536000, immutable
access-control-allow-origin: *
x-td-pop: fra1
x-td-cache: HIT

Limits

Where the PoPs are →