DOCS v0.1.13 github

@hatch:assets v0.2.1

Content-addressable assets database with hot-reload. Two backends behind one API — filesystem-backed on native (Fs.walk + content hashes + Hatch.watchFile), manifest-driven on web (fetch + lazy reads, page ships an assets-manifest.json). Edit a shader / texture / config file, see registered subscribers fire.

stable system updated May 1, 2026 source ↗
README
$ hatch add @hatch:assets

MOD assets

MOD assets_web

CL Asset

NEW Asset.new_(db, relPath, url, hash, size)

GET Asset.path

GET Asset.absolute

GET Asset.hash

GET Asset.size

GET Asset.mtime

GET Asset.text

GET Asset.bytes

GET Asset.invalidate_

GET Asset.toString

FN Asset.refresh_(hash, size)

CL Assets

NEW Assets.new_(baseUrl)

GET Assets.root

GET Assets.absRoot

GET Assets.count

GET Assets.list

GET Assets.toString

FN Assets.static open(baseUrl)

FN Assets.mount_(node, prefix)

FN Assets.has(relPath)

FN Assets.get(relPath)

FN Assets.bytes(relPath)

FN Assets.text(relPath)

FN Assets.hash(relPath)

FN Assets.list(prefix)

FN Assets.dirs(prefix)

FN Assets.files(prefix)

FN Assets.isDir(prefix)

FN Assets.listUnder_(prefix)

FN Assets.childrenOfKind_(prefix, wantDir)

FN Assets.on(relPath, fn)

FN Assets.off(relPath, fn)

FN Assets.reload(relPath)

FN Assets.lookupTreeNode_(tree, relPath)

FN Assets.fireSubscribers_(relPath, asset)

MOD assets_native

CL Asset

NEW Asset.new_(db, relPath, absPath, hash, size, mtime)

GET Asset.path

GET Asset.absolute

GET Asset.hash

GET Asset.size

GET Asset.mtime

GET Asset.bytes

GET Asset.text

GET Asset.invalidate_

GET Asset.toString

FN Asset.refresh_(hash, size, mtime)

CL Assets

NEW Assets.new_(root)

GET Assets.root

GET Assets.absRoot

GET Assets.count

GET Assets.toString

FN Assets.static open(dir)

FN Assets.static absolutize_(p)

FN Assets.scan_()

FN Assets.indexFile_(rel, abs)

FN Assets.get(relPath)

FN Assets.bytes(relPath)

FN Assets.text(relPath)

FN Assets.hash(relPath)

FN Assets.has(relPath)

FN Assets.on(relPath, fn)

FN Assets.handleFileChange_(absPath)

FN Assets.fireSubscribers_(rel, asset)

FN Assets.off(relPath, fn)