Compare commits

...

33 Commits

Author SHA1 Message Date
ed6115f5ea [release] expose-dir-via-http v1.3.10 2025-03-09 20:23:58 +01:00
4a7c5dd1d7 [deps] cargo update
Removing paste         v1.0.15
Updating actix-service v2.0.2   -> v2.0.3
Updating serde_derive  v1.0.218 -> v1.0.219
Updating serde         v1.0.218 -> v1.0.219
2025-03-09 20:23:57 +01:00
bc19aca540 [release] expose-dir-via-http v1.3.9 2025-03-08 21:58:52 +01:00
f30b4e2535 [deps] cargo update
Updating actix-server v2.5.0 -> v2.5.1
2025-03-08 21:58:51 +01:00
3ff516ed1f [release] expose-dir-via-http v1.3.8 2025-03-07 21:38:28 +01:00
394e332aa9 [deps] cargo update
Updating tokio v1.43.0 -> v1.44.0
2025-03-07 21:38:27 +01:00
6ae0990a54 [release] expose-dir-via-http v1.3.7 2025-03-06 08:54:43 +01:00
35356915fe [deps] cargo update
Updating bytes         v1.10.0 -> v1.10.1
Updating itoa          v1.0.14 -> v1.0.15
Updating redox_syscall v0.5.9  -> v0.5.10
Updating ryu           v1.0.19 -> v1.0.20
Updating semver        v1.0.25 -> v1.0.26
Updating time-core     v0.1.2  -> v0.1.3
Updating time-macros   v0.2.19 -> v0.2.20
Updating time          v0.3.37 -> v0.3.39
Updating unicode-ident v1.0.17 -> v1.0.18
2025-03-06 08:54:42 +01:00
86169cb345 [release] expose-dir-via-http v1.3.6 2025-03-03 17:27:42 +01:00
c3f74e076f [deps] cargo update
Updating httparse   v1.10.0  -> v1.10.1
Updating pkg-config v0.3.31  -> v0.3.32
Updating quote      v1.0.38  -> v1.0.39
Updating serde_json v1.0.139 -> v1.0.140
Updating syn        v2.0.98  -> v2.0.99
2025-03-03 17:27:39 +01:00
244be2e41e [release] expose-dir-via-http v1.3.5 2025-03-03 07:37:26 +01:00
80db486dc9 [deps] cargo update
Updating proc-macro2 v1.0.93 -> v1.0.94
2025-03-03 07:37:25 +01:00
9792d64f69 [release] expose-dir-via-http v1.3.4 2025-03-02 09:08:38 +01:00
a51035dbda [deps] cargo update
Updating bitflags v2.8.0 -> v2.9.0
2025-03-02 09:08:36 +01:00
e66ef328a1 [release] expose-dir-via-http v1.3.3 2025-02-28 15:26:13 +01:00
e44eb495ac [deps] cargo update
Updating cc              v1.2.14  -> v1.2.16
Updating clap_builder    v4.5.30  -> v4.5.31
Updating clap            v4.5.30  -> v4.5.31
Updating flate2          v1.0.35  -> v1.1.0
Updating libc            v0.2.169 -> v0.2.170
Updating litemap         v0.7.4   -> v0.7.5
Updating miniz_oxide     v0.8.4   -> v0.8.5
Updating redox_syscall   v0.5.8   -> v0.5.9
Updating zerofrom-derive v0.1.5   -> v0.1.6
Updating zerofrom        v0.1.5   -> v0.1.6
2025-02-28 15:26:12 +01:00
73cd4a27ac [release] expose-dir-via-http v1.3.2 2025-02-21 10:31:14 +01:00
6b050f3a05 [deps] cargo update
Updating log       v0.4.25            -> v0.4.26
Updating zstd-safe v7.2.1             -> v7.2.3
Updating zstd-sys  v2.0.13+zstd.1.5.6 -> v2.0.14+zstd.1.5.7
Updating zstd      v0.13.2            -> v0.13.3
2025-02-21 10:31:12 +01:00
8b94b630be [release] expose-dir-via-http v1.3.1 2025-02-20 19:05:12 +01:00
e35b0c9fd9 [code] small improvements suggested by Grok 3
- differentiate between "not a directory" and a real error while reading the path
- don't clone the PathBuf, instead use Arc
2025-02-20 19:04:53 +01:00
b5a2c750c5 [release] expose-dir-via-http v1.3.0 2025-02-20 18:27:24 +01:00
c7b0ca62f6 [deps] cargo update
Updating clap_builder  v4.5.29  -> v4.5.30
Updating clap          v4.5.29  -> v4.5.30
Updating serde_derive  v1.0.217 -> v1.0.218
Updating serde_json    v1.0.138 -> v1.0.139
Updating serde         v1.0.217 -> v1.0.218
Updating typenum       v1.17.0  -> v1.18.0
Updating unicode-ident v1.0.16  -> v1.0.17
2025-02-20 18:27:22 +01:00
34457d1cc1 [rust] edition 2024 2025-02-20 18:27:17 +01:00
e286e24d61 [release] expose-dir-via-http v1.2.1 2025-02-16 21:26:55 +01:00
9c1336b50c [deps] cargo update
Updating cc           v1.2.13 -> v1.2.14
Updating clap_builder v4.5.27 -> v4.5.29
Updating clap         v4.5.28 -> v4.5.29
Updating equivalent   v1.0.1  -> v1.0.2
Updating miniz_oxide  v0.8.3  -> v0.8.4
Updating smallvec     v1.13.2 -> v1.14.0
2025-02-16 21:26:53 +01:00
54e8015773 [release] expose-dir-via-http v1.2.0 2025-02-10 22:06:00 +01:00
30874a97f7 [feat] only allow valid dirs as 1st arg 2025-02-10 22:04:53 +01:00
05142358e1 [release] expose-dir-via-http v1.1.37 2025-02-10 21:14:25 +01:00
9f6891b4d5 [deps] cargo update
Updating bytes       v1.9.0   -> v1.10.0
Updating cc          v1.2.10  -> v1.2.13
Updating clap_derive v4.5.24  -> v4.5.28
Updating clap        v4.5.27  -> v4.5.28
Updating derive_more v0.99.18 -> v0.99.19
Updating once_cell   v1.20.2  -> v1.20.3
Updating syn         v2.0.96  -> v2.0.98
2025-02-10 21:14:23 +01:00
9c52aa8833 [release] expose-dir-via-http v1.1.36 2025-01-30 08:43:58 +01:00
0e244ebadd [deps] cargo update
Updating httparse   v1.9.5   -> v1.10.0
Updating serde_json v1.0.137 -> v1.0.138
2025-01-30 08:43:53 +01:00
6ade932389 [release] expose-dir-via-http v1.1.35 2025-01-28 10:58:54 +01:00
7dc14a83cf [deps] cargo update
Updating cpufeatures   v0.2.16 -> v0.2.17
Updating ryu           v1.0.18 -> v1.0.19
Updating unicode-ident v1.0.15 -> v1.0.16
2025-01-28 10:58:48 +01:00
3 changed files with 106 additions and 98 deletions

173
Cargo.lock generated
View File

@ -118,9 +118,9 @@ dependencies = [
[[package]]
name = "actix-server"
version = "2.5.0"
version = "2.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ca2549781d8dd6d75c40cf6b6051260a2cc2f3c62343d761a969a0640646894"
checksum = "6398974fd4284f4768af07965701efbbb5fdc0616bff20cade1bb14b77675e24"
dependencies = [
"actix-rt",
"actix-service",
@ -135,12 +135,11 @@ dependencies = [
[[package]]
name = "actix-service"
version = "2.0.2"
version = "2.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a"
checksum = "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f"
dependencies = [
"futures-core",
"paste",
"pin-project-lite",
]
@ -339,9 +338,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
name = "bitflags"
version = "2.8.0"
version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"
checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
[[package]]
name = "block-buffer"
@ -381,9 +380,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
version = "1.9.0"
version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b"
checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
[[package]]
name = "bytestring"
@ -396,9 +395,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.2.10"
version = "1.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229"
checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c"
dependencies = [
"jobserver",
"libc",
@ -413,9 +412,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "4.5.27"
version = "4.5.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796"
checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767"
dependencies = [
"clap_builder",
"clap_derive",
@ -423,9 +422,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.5.27"
version = "4.5.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7"
checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863"
dependencies = [
"anstream",
"anstyle",
@ -435,9 +434,9 @@ dependencies = [
[[package]]
name = "clap_derive"
version = "4.5.24"
version = "4.5.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c"
checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed"
dependencies = [
"heck",
"proc-macro2",
@ -476,9 +475,9 @@ dependencies = [
[[package]]
name = "cpufeatures"
version = "0.2.16"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3"
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
dependencies = [
"libc",
]
@ -513,9 +512,9 @@ dependencies = [
[[package]]
name = "derive_more"
version = "0.99.18"
version = "0.99.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f"
dependencies = [
"convert_case",
"proc-macro2",
@ -556,13 +555,13 @@ dependencies = [
[[package]]
name = "equivalent"
version = "1.0.1"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]]
name = "expose-dir-via-http"
version = "1.1.34"
version = "1.3.10"
dependencies = [
"actix-files",
"actix-web",
@ -571,9 +570,9 @@ dependencies = [
[[package]]
name = "flate2"
version = "1.0.35"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c"
checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc"
dependencies = [
"crc32fast",
"miniz_oxide",
@ -701,9 +700,9 @@ checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
[[package]]
name = "httparse"
version = "1.9.5"
version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946"
checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
[[package]]
name = "httpdate"
@ -874,9 +873,9 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
[[package]]
name = "itoa"
version = "1.0.14"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "jobserver"
@ -895,15 +894,15 @@ checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
[[package]]
name = "libc"
version = "0.2.169"
version = "0.2.170"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828"
[[package]]
name = "litemap"
version = "0.7.4"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"
checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856"
[[package]]
name = "local-channel"
@ -934,9 +933,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.25"
version = "0.4.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f"
checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e"
[[package]]
name = "memchr"
@ -962,9 +961,9 @@ dependencies = [
[[package]]
name = "miniz_oxide"
version = "0.8.3"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924"
checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5"
dependencies = [
"adler2",
]
@ -998,9 +997,9 @@ dependencies = [
[[package]]
name = "once_cell"
version = "1.20.2"
version = "1.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e"
[[package]]
name = "parking_lot"
@ -1025,12 +1024,6 @@ dependencies = [
"windows-targets",
]
[[package]]
name = "paste"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
[[package]]
name = "percent-encoding"
version = "2.3.1"
@ -1051,9 +1044,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pkg-config"
version = "0.3.31"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
[[package]]
name = "powerfmt"
@ -1072,18 +1065,18 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.93"
version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.38"
version = "1.0.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801"
dependencies = [
"proc-macro2",
]
@ -1120,9 +1113,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.5.8"
version = "0.5.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834"
checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1"
dependencies = [
"bitflags",
]
@ -1179,9 +1172,9 @@ dependencies = [
[[package]]
name = "ryu"
version = "1.0.18"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]]
name = "scopeguard"
@ -1191,24 +1184,24 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "semver"
version = "1.0.25"
version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03"
checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
[[package]]
name = "serde"
version = "1.0.217"
version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.217"
version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
dependencies = [
"proc-macro2",
"quote",
@ -1217,9 +1210,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.137"
version = "1.0.140"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b"
checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373"
dependencies = [
"itoa",
"memchr",
@ -1276,9 +1269,9 @@ dependencies = [
[[package]]
name = "smallvec"
version = "1.13.2"
version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd"
[[package]]
name = "socket2"
@ -1304,9 +1297,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "syn"
version = "2.0.96"
version = "2.0.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80"
checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2"
dependencies = [
"proc-macro2",
"quote",
@ -1326,9 +1319,9 @@ dependencies = [
[[package]]
name = "time"
version = "0.3.37"
version = "0.3.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"
checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8"
dependencies = [
"deranged",
"itoa",
@ -1341,15 +1334,15 @@ dependencies = [
[[package]]
name = "time-core"
version = "0.1.2"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef"
[[package]]
name = "time-macros"
version = "0.2.19"
version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"
checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c"
dependencies = [
"num-conv",
"time-core",
@ -1367,9 +1360,9 @@ dependencies = [
[[package]]
name = "tokio"
version = "1.43.0"
version = "1.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e"
checksum = "9975ea0f48b5aa3972bf2d888c238182458437cc2a19374b81b25cdf1023fb3a"
dependencies = [
"backtrace",
"bytes",
@ -1417,9 +1410,9 @@ dependencies = [
[[package]]
name = "typenum"
version = "1.17.0"
version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
[[package]]
name = "unicase"
@ -1429,9 +1422,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
[[package]]
name = "unicode-ident"
version = "1.0.15"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243"
checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
[[package]]
name = "url"
@ -1621,18 +1614,18 @@ dependencies = [
[[package]]
name = "zerofrom"
version = "0.1.5"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e"
checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
dependencies = [
"zerofrom-derive",
]
[[package]]
name = "zerofrom-derive"
version = "0.1.5"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"
checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
dependencies = [
"proc-macro2",
"quote",
@ -1664,27 +1657,27 @@ dependencies = [
[[package]]
name = "zstd"
version = "0.13.2"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9"
checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
version = "7.2.1"
version = "7.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059"
checksum = "f3051792fbdc2e1e143244dc28c60f73d8470e93f3f9cbd0ead44da5ed802722"
dependencies = [
"zstd-sys",
]
[[package]]
name = "zstd-sys"
version = "2.0.13+zstd.1.5.6"
version = "2.0.14+zstd.1.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa"
checksum = "8fb060d4926e4ac3a3ad15d864e99ceb5f343c6b34f5bd6d81ae6ed417311be5"
dependencies = [
"cc",
"pkg-config",

View File

@ -1,7 +1,7 @@
[package]
name = "expose-dir-via-http"
version = "1.1.34"
edition = "2021"
version = "1.3.10"
edition = "2024"
[lints.rust]
unsafe_code = "forbid"

View File

@ -1,18 +1,20 @@
use std::{
net::{IpAddr, SocketAddr},
num::NonZeroUsize,
path::PathBuf,
sync::Arc,
thread::available_parallelism,
};
use actix_web::{App, HttpServer};
use clap::{crate_name, crate_version, Parser};
use clap::{Parser, crate_name, crate_version};
#[derive(Parser, Debug)]
#[clap(name = crate_name!(), version = crate_version!())]
struct Args {
/// Directory to expose
#[clap(default_value = ".")]
dir: String,
#[clap(default_value = ".", value_parser = parse_valid_dir)]
dir: PathBuf,
/// IP address to use
#[clap(default_value = "0.0.0.0")]
@ -23,18 +25,31 @@ struct Args {
port: u16,
}
fn parse_valid_dir(dir: &str) -> Result<PathBuf, String> {
let path = PathBuf::from(dir);
match std::fs::metadata(&path) {
Ok(metadata) if metadata.is_dir() => Ok(path),
Ok(_) => Err(format!("{} is not a directory", path.display())),
Err(e) => Err(format!("Error accessing {}: {}", path.display(), e)),
}
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
let args = Args::parse();
let dir = args.dir;
let dir = Arc::new(args.dir);
let sock = SocketAddr::new(args.ip, args.port);
println!("Starting HTTP server on {sock} exposing dir {dir}");
println!(
"Starting HTTP server on {sock} exposing dir {}",
dir.display()
);
HttpServer::new(move || {
let dir = dir.clone();
App::new().service(
actix_files::Files::new("/", dir.clone())
actix_files::Files::new("/", dir.as_ref())
.show_files_listing()
.prefer_utf8(true),
)