Skip to content

Limits and defaults

Defaults

Constant Value Note
Artefact onnxruntime The name in the channel
DefaultVersion 1.28.0 Pinned; must expose C API 23 or above

Cache location

<os.UserCacheDir()>/phpboyscout/onnxruntime/<version>/libonnxruntime.so

On Linux that is ~/.cache/phpboyscout/onnxruntime/1.28.0/; on macOS, ~/Library/Caches/phpboyscout/....

The path is deliberately vendor-neutral — named for the estate, not for whichever tool happened to populate it. An earlier implementation cached under a directory named for one tool, and a second tool's install then wrote into a directory named after the first. Nobody notices until they go looking for disk usage.

WithCacheDir overrides it. When supplied, the OS cache directory is never consulted — so a container with no HOME works, which is exactly where an explicit directory gets passed.

Permissions

Thing Mode
Cache directories 0755
The extracted library 0600

Owner-read is enough: dlopen maps the file PROT_EXEC without needing the file's own execute bit. A library nothing else can read is one nothing else can swap.

Bounds

Bound Value
Decompressed library 512 MiB

The archive's digest and length are verified before it reaches disk, so this is not a defence against a hostile channel. It bounds the decompressed stream, which is a different quantity from the compressed one and worth keeping finite regardless.

Exceeding it raises ErrOversizeLibrary, and the message carries both the size and the bound — "too big" alone does not tell a publisher which to change.

Writes are atomic

The library is written to a temporary file in the destination directory and renamed into place. A concurrent reader sees either no library or a complete one, never a truncated one. A failed extraction removes its temporary file.