cacheio/.gitignore
stack/cacheio/.gitignore
cacheio/.gitignore
stack/cacheio/.gitignore
cacheio/README.md
stack/cacheio/README.md
cacheio/README.md
stack/cacheio/README.md
cacheio/bin/dune
stack/cacheio/bin/dune
cacheio/bin/dune
stack/cacheio/bin/dune
+3
-3
cacheio/bin/example.ml
stack/cacheio/bin/example.ml
+3
-3
cacheio/bin/example.ml
stack/cacheio/bin/example.ml
·········
·········
+1
cacheio/cacheio.opam
stack/cacheio/cacheio.opam
+1
cacheio/cacheio.opam
stack/cacheio/cacheio.opam
+1
cacheio/dune-project
stack/cacheio/dune-project
+1
cacheio/dune-project
stack/cacheio/dune-project
+42
-24
cacheio/lib/cacheio.ml
stack/cacheio/lib/cacheio.ml
+42
-24
cacheio/lib/cacheio.ml
stack/cacheio/lib/cacheio.ml
························
························
+9
-7
cacheio/lib/cacheio.mli
stack/cacheio/lib/cacheio.mli
+9
-7
cacheio/lib/cacheio.mli
stack/cacheio/lib/cacheio.mli
············
············
+1
-1
cacheio/lib/dune
stack/cacheio/lib/dune
+1
-1
cacheio/lib/dune
stack/cacheio/lib/dune
cacheio/xdg-eio
stack/cacheio/xdg-eio
cacheio/xdg-eio
stack/cacheio/xdg-eio
requests/.gitignore
stack/requests/.gitignore
requests/.gitignore
stack/requests/.gitignore
requests/CLAUDE.md
stack/requests/CLAUDE.md
requests/CLAUDE.md
stack/requests/CLAUDE.md
requests/DESIGN.md
stack/requests/DESIGN.md
requests/DESIGN.md
stack/requests/DESIGN.md
requests/bin/dune
stack/requests/bin/dune
requests/bin/dune
stack/requests/bin/dune
requests/bin/ocurl.ml
stack/requests/bin/ocurl.ml
requests/bin/ocurl.ml
stack/requests/bin/ocurl.ml
requests/dune-project
stack/requests/dune-project
requests/dune-project
stack/requests/dune-project
requests/lib/dune
stack/requests/lib/dune
requests/lib/dune
stack/requests/lib/dune
requests/lib/requests.ml
stack/requests/lib/requests.ml
requests/lib/requests.ml
stack/requests/lib/requests.ml
requests/lib/requests.mli
stack/requests/lib/requests.mli
requests/lib/requests.mli
stack/requests/lib/requests.mli
requests/requests.opam
stack/requests/requests.opam
requests/requests.opam
stack/requests/requests.opam
requests/test/dune
stack/requests/test/dune
requests/test/dune
stack/requests/test/dune
requests/test/test_requests.ml
stack/requests/test/test_requests.ml
requests/test/test_requests.ml
stack/requests/test/test_requests.ml
+266
stack/toru/lib/toru/cache.ml
+266
stack/toru/lib/toru/cache.ml
···
···
+346
stack/toru/lib/toru/downloader.ml
+346
stack/toru/lib/toru/downloader.ml
···
···+let doc = "Download tool to use. 'auto' detects available tools, 'http' uses built-in HTTP client." in
toru/.gitignore
stack/toru/.gitignore
toru/.gitignore
stack/toru/.gitignore
toru/CLAUDE.md
stack/toru/CLAUDE.md
toru/CLAUDE.md
stack/toru/CLAUDE.md
toru/README.md
stack/toru/README.md
toru/README.md
stack/toru/README.md
toru/TODO.md
stack/toru/TODO.md
toru/TODO.md
stack/toru/TODO.md
toru/bin/dune
stack/toru/bin/dune
toru/bin/dune
stack/toru/bin/dune
toru/bin/tessera_loader.ml
stack/toru/bin/tessera_loader.ml
toru/bin/tessera_loader.ml
stack/toru/bin/tessera_loader.ml
toru/bin/toru_cache.ml
stack/toru/bin/toru_cache.ml
toru/bin/toru_cache.ml
stack/toru/bin/toru_cache.ml
toru/bin/toru_main.ml
stack/toru/bin/toru_main.ml
toru/bin/toru_main.ml
stack/toru/bin/toru_main.ml
toru/bin/toru_make_registry.ml
stack/toru/bin/toru_make_registry.ml
toru/bin/toru_make_registry.ml
stack/toru/bin/toru_make_registry.ml
toru/bin/toru_make_registry_simple.ml
stack/toru/bin/toru_make_registry_simple.ml
toru/bin/toru_make_registry_simple.ml
stack/toru/bin/toru_make_registry_simple.ml
+2
toru/dune-project
stack/toru/dune-project
+2
toru/dune-project
stack/toru/dune-project
-289
toru/lib/toru/cache.ml
-289
toru/lib/toru/cache.ml
···
···
toru/lib/toru/cache.mli
stack/toru/lib/toru/cache.mli
toru/lib/toru/cache.mli
stack/toru/lib/toru/cache.mli
-268
toru/lib/toru/downloader.ml
-268
toru/lib/toru/downloader.ml
···
···
+2
-1
toru/lib/toru/downloader.mli
stack/toru/lib/toru/downloader.mli
+2
-1
toru/lib/toru/downloader.mli
stack/toru/lib/toru/downloader.mli
······
······
+4
-2
toru/lib/toru/dune
stack/toru/lib/toru/dune
+4
-2
toru/lib/toru/dune
stack/toru/lib/toru/dune
toru/lib/toru/hash.ml
stack/toru/lib/toru/hash.ml
toru/lib/toru/hash.ml
stack/toru/lib/toru/hash.ml
toru/lib/toru/hash.mli
stack/toru/lib/toru/hash.mli
toru/lib/toru/hash.mli
stack/toru/lib/toru/hash.mli
toru/lib/toru/logging.ml
stack/toru/lib/toru/logging.ml
toru/lib/toru/logging.ml
stack/toru/lib/toru/logging.ml
toru/lib/toru/logging.mli
stack/toru/lib/toru/logging.mli
toru/lib/toru/logging.mli
stack/toru/lib/toru/logging.mli
toru/lib/toru/make_registry.ml
stack/toru/lib/toru/make_registry.ml
toru/lib/toru/make_registry.ml
stack/toru/lib/toru/make_registry.ml
toru/lib/toru/make_registry.mli
stack/toru/lib/toru/make_registry.mli
toru/lib/toru/make_registry.mli
stack/toru/lib/toru/make_registry.mli
toru/lib/toru/processors.ml
stack/toru/lib/toru/processors.ml
toru/lib/toru/processors.ml
stack/toru/lib/toru/processors.ml
toru/lib/toru/processors.mli
stack/toru/lib/toru/processors.mli
toru/lib/toru/processors.mli
stack/toru/lib/toru/processors.mli
toru/lib/toru/registry.ml
stack/toru/lib/toru/registry.ml
toru/lib/toru/registry.ml
stack/toru/lib/toru/registry.ml
toru/lib/toru/registry.mli
stack/toru/lib/toru/registry.mli
toru/lib/toru/registry.mli
stack/toru/lib/toru/registry.mli
toru/lib/toru/toru.ml
stack/toru/lib/toru/toru.ml
toru/lib/toru/toru.ml
stack/toru/lib/toru/toru.ml
toru/lib/toru/toru.mli
stack/toru/lib/toru/toru.mli
toru/lib/toru/toru.mli
stack/toru/lib/toru/toru.mli
toru/test/CACHE_IMPLEMENTATION_REPORT.md
stack/toru/test/CACHE_IMPLEMENTATION_REPORT.md
toru/test/CACHE_IMPLEMENTATION_REPORT.md
stack/toru/test/CACHE_IMPLEMENTATION_REPORT.md
toru/test/basic.t
stack/toru/test/basic.t
toru/test/basic.t
stack/toru/test/basic.t
toru/test/cli.t
stack/toru/test/cli.t
toru/test/cli.t
stack/toru/test/cli.t
toru/test/downloader_demo.ml
stack/toru/test/downloader_demo.ml
toru/test/downloader_demo.ml
stack/toru/test/downloader_demo.ml
toru/test/dune
stack/toru/test/dune
toru/test/dune
stack/toru/test/dune
toru/test/python/generate_pooch_registry.py
stack/toru/test/python/generate_pooch_registry.py
toru/test/python/generate_pooch_registry.py
stack/toru/test/python/generate_pooch_registry.py
toru/test/python/pyproject.toml
stack/toru/test/python/pyproject.toml
toru/test/python/pyproject.toml
stack/toru/test/python/pyproject.toml
toru/test/python/test_data/config.json
stack/toru/test/python/test_data/config.json
toru/test/python/test_data/config.json
stack/toru/test/python/test_data/config.json
toru/test/python/test_data/data/numbers.csv
stack/toru/test/python/test_data/data/numbers.csv
toru/test/python/test_data/data/numbers.csv
stack/toru/test/python/test_data/data/numbers.csv
toru/test/python/test_data/data/simple.txt
stack/toru/test/python/test_data/data/simple.txt
toru/test/python/test_data/data/simple.txt
stack/toru/test/python/test_data/data/simple.txt
toru/test/python/test_data/data/unicode.txt
stack/toru/test/python/test_data/data/unicode.txt
toru/test/python/test_data/data/unicode.txt
stack/toru/test/python/test_data/data/unicode.txt
toru/test/python/test_data/docs/readme.md
stack/toru/test/python/test_data/docs/readme.md
toru/test/python/test_data/docs/readme.md
stack/toru/test/python/test_data/docs/readme.md
toru/test/python/test_data/empty.txt
stack/toru/test/python/test_data/empty.txt
toru/test/python/test_data/empty.txt
stack/toru/test/python/test_data/empty.txt
toru/test/python/test_data/models/small.bin
stack/toru/test/python/test_data/models/small.bin
toru/test/python/test_data/models/small.bin
stack/toru/test/python/test_data/models/small.bin
toru/test/python/test_metadata.json
stack/toru/test/python/test_metadata.json
toru/test/python/test_metadata.json
stack/toru/test/python/test_metadata.json
toru/test/python/test_registry_md5.txt
stack/toru/test/python/test_registry_md5.txt
toru/test/python/test_registry_md5.txt
stack/toru/test/python/test_registry_md5.txt
toru/test/python/test_registry_mixed.txt
stack/toru/test/python/test_registry_mixed.txt
toru/test/python/test_registry_mixed.txt
stack/toru/test/python/test_registry_mixed.txt
toru/test/python/test_registry_sha1.txt
stack/toru/test/python/test_registry_sha1.txt
toru/test/python/test_registry_sha1.txt
stack/toru/test/python/test_registry_sha1.txt
toru/test/python/test_registry_sha256.txt
stack/toru/test/python/test_registry_sha256.txt
toru/test/python/test_registry_sha256.txt
stack/toru/test/python/test_registry_sha256.txt
toru/test/test_cache.ml
stack/toru/test/test_cache.ml
toru/test/test_cache.ml
stack/toru/test/test_cache.ml
toru/test/test_cache_xdg.ml
stack/toru/test/test_cache_xdg.ml
toru/test/test_cache_xdg.ml
stack/toru/test/test_cache_xdg.ml
toru/test/test_curl_download.ml
stack/toru/test/test_curl_download.ml
toru/test/test_curl_download.ml
stack/toru/test/test_curl_download.ml
toru/test/test_downloader.ml
stack/toru/test/test_downloader.ml
toru/test/test_downloader.ml
stack/toru/test/test_downloader.ml
toru/test/test_downloader_comprehensive.ml
stack/toru/test/test_downloader_comprehensive.ml
toru/test/test_downloader_comprehensive.ml
stack/toru/test/test_downloader_comprehensive.ml
toru/test/test_hash.ml
stack/toru/test/test_hash.ml
toru/test/test_hash.ml
stack/toru/test/test_hash.ml
toru/test/test_hash_manual.ml
stack/toru/test/test_hash_manual.ml
toru/test/test_hash_manual.ml
stack/toru/test/test_hash_manual.ml
toru/test/test_make_registry.ml
stack/toru/test/test_make_registry.ml
toru/test/test_make_registry.ml
stack/toru/test/test_make_registry.ml
toru/test/test_python_cross_validation.ml
stack/toru/test/test_python_cross_validation.ml
toru/test/test_python_cross_validation.ml
stack/toru/test/test_python_cross_validation.ml
toru/test/test_registry.ml
stack/toru/test/test_registry.ml
toru/test/test_registry.ml
stack/toru/test/test_registry.ml
toru/test/test_registry_real.ml
stack/toru/test/test_registry_real.ml
toru/test/test_registry_real.ml
stack/toru/test/test_registry_real.ml
toru/test/test_tessera_integration.ml
stack/toru/test/test_tessera_integration.ml
toru/test/test_tessera_integration.ml
stack/toru/test/test_tessera_integration.ml
toru/test/test_tessera_load.ml
stack/toru/test/test_tessera_load.ml
toru/test/test_tessera_load.ml
stack/toru/test/test_tessera_load.ml
toru/test/test_toru.ml
stack/toru/test/test_toru.ml
toru/test/test_toru.ml
stack/toru/test/test_toru.ml
toru/test/test_xdg_integration.ml
stack/toru/test/test_xdg_integration.ml
toru/test/test_xdg_integration.ml
stack/toru/test/test_xdg_integration.ml
xdg-eio/.gitignore
stack/xdge/.gitignore
xdg-eio/.gitignore
stack/xdge/.gitignore
xdg-eio/.ocamlformat
stack/xdge/.ocamlformat
xdg-eio/.ocamlformat
stack/xdge/.ocamlformat
xdg-eio/CLAUDE.md
stack/xdge/CLAUDE.md
xdg-eio/CLAUDE.md
stack/xdge/CLAUDE.md
xdg-eio/dune-project
stack/xdge/dune-project
xdg-eio/dune-project
stack/xdge/dune-project
xdg-eio/example/dune
stack/xdge/example/dune
xdg-eio/example/dune
stack/xdge/example/dune
xdg-eio/example/minimal_test.cmi
stack/xdge/example/minimal_test.cmi
xdg-eio/example/minimal_test.cmi
stack/xdge/example/minimal_test.cmi
xdg-eio/example/minimal_test.cmo
stack/xdge/example/minimal_test.cmo
xdg-eio/example/minimal_test.cmo
stack/xdge/example/minimal_test.cmo
xdg-eio/example/xdg_example.ml
stack/xdge/example/xdg_example.ml
xdg-eio/example/xdg_example.ml
stack/xdge/example/xdg_example.ml
xdg-eio/lib/dune
stack/xdge/lib/dune
xdg-eio/lib/dune
stack/xdge/lib/dune
xdg-eio/lib/xdge.ml
stack/xdge/lib/xdge.ml
xdg-eio/lib/xdge.ml
stack/xdge/lib/xdge.ml
xdg-eio/lib/xdge.mli
stack/xdge/lib/xdge.mli
xdg-eio/lib/xdge.mli
stack/xdge/lib/xdge.mli
xdg-eio/test/dune
stack/xdge/test/dune
xdg-eio/test/dune
stack/xdge/test/dune
xdg-eio/test/test_paths.ml
stack/xdge/test/test_paths.ml
xdg-eio/test/test_paths.ml
stack/xdge/test/test_paths.ml
xdg-eio/test/xdg.t
stack/xdge/test/xdg.t
xdg-eio/test/xdg.t
stack/xdge/test/xdg.t
xdg-eio/xdge.opam
stack/xdge/xdge.opam
xdg-eio/xdge.opam
stack/xdge/xdge.opam