Developer Tools
vregistry
A local, file based package registry behind publish and fetch.
Released v1.0.0 · 2026-09-28use "stdlib/registry.ven"
A local, file based package registry for Venutian, built the same way the package manager itself is: on top of existing map, JSON and filesystem builtins, with no network registry involved. It lets a project publish and fetch packages from a folder it controls, rather than from an address on the internet.
print relative_content_hash("my-registry/packages/utils/1.0.0")
Reference (22 functions)
- relative_content_hash
- registry_index_path
- registry_packages_dir
- load_registry_index
- save_registry_index
- package_dest_dir
- has_package
- list_versions
- version_parts
- is_numeric_part
- version_part_less
- version_part_equal
- version_less
- sorted_list_by_version
- latest_version
- publish_package
- resolve_version
- sign_content_hash
- sign_package
- verify_package_signature
- install_from_registry_verified
- install_from_registry
API reference
relative_content_hash(directory)
Hashes every file under directory into one digest, keyed by each file's path relative to directory rather than its absolute path.
relative_content_hash("my-registry/packages/utils/1.0.0")registry_index_path(registry_dir)
Gives back the path to registry_dirs own index file.
registry_index_path("my-registry")registry_packages_dir(registry_dir)
Gives back the path to registry_dirs archive of published packages.
registry_packages_dir("my-registry")load_registry_index(registry_dir)
Loads registry_dirs index as a map, or a fresh empty map if none exists yet.
load_registry_index("my-registry")save_registry_index(registry_dir, index)
Writes index back out to registry_dirs index file, creating the directory first if needed.
save_registry_index("my-registry", new_map())package_dest_dir(registry_dir, name, version)
Gives back where a specific published name and version's files live on disk.
package_dest_dir("my-registry", "utils", "1.0.0")has_package(index, name)
Tests whether index has any published version at all for name.
has_package(load_registry_index("my-registry"), "utils")list_versions(registry_dir, name)
Lists every version of name published to registry_dir, oldest first.
list_versions("my-registry", "utils")version_parts(version)
Splits a version string on "." into its raw component parts.
version_parts("1.2.3")is_numeric_part(text)
Tests whether text is a component made entirely of digits.
is_numeric_part("10")version_part_less(a, b)
Tests whether version component a sorts before component b.
version_part_less("9", "10")version_part_equal(a, b)
Tests whether version component a equals component b.
version_part_equal("01", "1")version_less(left, right)
Tests whether version left sorts strictly before version right.
version_less("9.0.0", "10.0.0")sorted_list_by_version(versions)
Sorts a list of version strings in ascending numeric order.
sorted_list_by_version(["10.0.0", "2.0.0", "9.0.0"])latest_version(registry_dir, name)
Gives back the newest published version of name, or nothing if it has none.
latest_version("my-registry", "utils")publish_package(registry_dir, name, version, source_dir)
Publishes source_dir to the registry under name and version.
publish_package("my-registry", "utils", "1.0.0", "../shared/utils")resolve_version(registry_dir, name, version_or_nothing)
Resolves a package name and optional version against the registry index.
resolve_version("my-registry", "utils", nothing)sign_content_hash(signing_key, content_hash)
Package signing.
sign_content_hash("team-secret-key", "3a7bd3e2360a...")sign_package(registry_dir, name, version, signing_key)
Signs an already-published name and version, storing the signature in the index.
sign_package("my-registry", "utils", "1.0.0", "team-secret-key")verify_package_signature(registry_dir, name, version, signing_key)
Tests whether signing_key vouches for the recorded content hash of name/version.
verify_package_signature("my-registry", "utils", "1.0.0", "team-secret-key")install_from_registry_verified(registry_dir, name, version_or_nothing, packages_dir, signing_key)
Installs a package from the registry, but only when its signature checks out.
install_from_registry_verified("my-registry", "utils", nothing, "venutian_packages", "team-secret-key")install_from_registry(registry_dir, name, version_or_nothing, packages_dir)
Installs the resolved version of name from the registry into packages_dir.
install_from_registry("my-registry", "utils", nothing, "venutian_packages")