Compare commits

...

67 Commits

Author SHA1 Message Date
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
7a6da447ab [release] expose-dir-via-http v1.1.34 2025-01-23 15:14:47 +01:00
69a0948cf7 [deps] cargo update
Updating unicode-ident v1.0.14 -> v1.0.15
2025-01-23 15:14:41 +01:00
a738845b99 [release] expose-dir-via-http v1.1.33 2025-01-21 10:59:43 +01:00
fc8caf5f70 [deps] cargo update
Updating brotli-decompressor v4.0.1   -> v4.0.2
Updating clap_builder        v4.5.26  -> v4.5.27
Updating clap                v4.5.26  -> v4.5.27
Updating indexmap            v2.7.0   -> v2.7.1
Updating semver              v1.0.24  -> v1.0.25
Updating serde_json          v1.0.136 -> v1.0.137
2025-01-21 10:59:38 +01:00
9fed0f99fa [release] expose-dir-via-http v1.1.32 2025-01-19 21:23:36 +01:00
363d0f65a3 [deps] cargo update
Updating serde_json v1.0.135 -> v1.0.136
2025-01-19 21:23:34 +01:00
2df79f2cd9 [release] expose-dir-via-http v1.1.31 2025-01-17 15:57:15 +01:00
89ab6fbe53 [deps] cargo update
Updating cc v1.2.9 -> v1.2.10
2025-01-17 15:57:09 +01:00
f41fcb201b [release] expose-dir-via-http v1.1.30 2025-01-15 23:39:48 +01:00
c0284f8f76 [deps] cargo update
Updating bitflags v2.7.0 -> v2.8.0
2025-01-15 23:39:47 +01:00
8416ed51e7 [release] expose-dir-via-http v1.1.29 2025-01-14 22:58:51 +01:00
238f452531 [deps] cargo update
Updating anstyle-wincon v3.0.6  -> v3.0.7
Updating log            v0.4.22 -> v0.4.25
Updating miniz_oxide    v0.8.2  -> v0.8.3
2025-01-14 22:58:49 +01:00
5836b71635 [release] expose-dir-via-http v1.1.28 2025-01-12 23:15:24 +01:00
4e83bfe815 [deps] cargo update
Updating bitflags         v2.6.0   -> v2.7.0
Updating cc               v1.2.7   -> v1.2.9
Updating clap_builder     v4.5.23  -> v4.5.26
Updating clap_derive      v4.5.18  -> v4.5.24
Updating clap             v4.5.23  -> v4.5.26
Updating pin-project-lite v0.2.15  -> v0.2.16
Updating proc-macro2      v1.0.92  -> v1.0.93
Updating serde_json       v1.0.134 -> v1.0.135
Updating syn              v2.0.94  -> v2.0.96
Updating tokio            v1.42.0  -> v1.43.0
2025-01-12 23:15:18 +01:00
462910f6db [release] expose-dir-via-http v1.1.27 2025-01-03 11:23:41 +01:00
3a4a9dc1f1 [deps] cargo update
Updating cc           v1.2.5   -> v1.2.7
Updating impl-more    v0.1.8   -> v0.1.9
Updating quote        v1.0.37  -> v1.0.38
Updating serde_derive v1.0.216 -> v1.0.217
Updating serde        v1.0.216 -> v1.0.217
Updating syn          v2.0.91  -> v2.0.94
Updating unicase      v2.8.0   -> v2.8.1
2025-01-03 11:23:36 +01:00
1750a14fdf [release] expose-dir-via-http v1.1.26 2024-12-22 11:22:18 +01:00
1c2616fc0c [deps] cargo update
Updating object     v0.36.5  -> v0.36.7
Updating serde_json v1.0.133 -> v1.0.134
Updating syn        v2.0.90  -> v2.0.91
2024-12-22 11:22:17 +01:00
14e2878dea [release] expose-dir-via-http v1.1.25 2024-12-20 17:41:57 +01:00
9461368fa9 [deps] cargo update
Updating cc   v1.2.4   -> v1.2.5
Updating libc v0.2.168 -> v0.2.169
2024-12-20 17:41:51 +01:00
8ae92de0f3 [release] expose-dir-via-http v1.1.24 2024-12-18 12:40:39 +01:00
2ae69ed152 [deps] cargo update
Updating miniz_oxide v0.8.0 -> v0.8.2
2024-12-18 12:40:33 +01:00
5ac30a6a5a [release] expose-dir-via-http v1.1.23 2024-12-14 14:37:55 +01:00
979bab809c [deps] cargo update
Updating cc v1.2.3 -> v1.2.4
2024-12-14 14:37:50 +01:00
844dfd9e3a [release] expose-dir-via-http v1.1.22 2024-12-12 23:46:07 +01:00
ac3e4f38a2 [deps] cargo update
Updating semver v1.0.23 -> v1.0.24
2024-12-12 23:46:03 +01:00
5145c3cb29 [release] expose-dir-via-http v1.1.21 2024-12-12 19:28:08 +01:00
cc95f0c163 [deps] cargo update
Updating redox_syscall v0.5.7   -> v0.5.8
Updating serde_derive  v1.0.215 -> v1.0.216
Updating serde         v1.0.215 -> v1.0.216
2024-12-12 19:28:03 +01:00
4954098f53 [release] expose-dir-via-http v1.1.20 2024-12-10 19:15:52 +01:00
c60eca2808 [deps] cargo update
Updating libc v0.2.167 -> v0.2.168
2024-12-10 19:15:48 +01:00
0f24b879bd [release] expose-dir-via-http v1.1.19 2024-12-07 11:10:45 +01:00
9963cceb59 [deps] cargo update 2024-12-07 11:10:40 +01:00
f80e465b40 [release] expose-dir-via-http v1.1.18 2024-12-05 22:45:20 +01:00
6d18869c57 [deps] cargo update
Updating clap_builder v4.5.22 -> v4.5.23
Updating clap_lex     v0.7.3  -> v0.7.4
Updating clap         v4.5.22 -> v4.5.23
2024-12-05 22:45:11 +01:00
72b4fb147e [release] expose-dir-via-http v1.1.17 2024-12-04 17:57:33 +01:00
f8d170f8c3 [deps] cargo update
Updating tokio-util v0.7.12 -> v0.7.13
2024-12-04 17:57:28 +01:00
0d18904e33 [release] expose-dir-via-http v1.1.16 2024-12-04 08:47:29 +01:00
bab14f394c [deps] cargo update
Updating clap_builder v4.5.21 -> v4.5.22
Updating clap         v4.5.21 -> v4.5.22
2024-12-04 08:47:23 +01:00
75e5c4448c [release] expose-dir-via-http v1.1.15 2024-12-03 20:17:58 +01:00
ceb1472040 [deps] cargo update
Updating time-macros v0.2.18 -> v0.2.19
Updating time        v0.3.36 -> v0.3.37
Updating tokio       v1.41.1 -> v1.42.0
2024-12-03 20:17:53 +01:00
c9d0a7fabc [release] expose-dir-via-http v1.1.14 2024-12-01 17:05:02 +01:00
107f20222d [deps] cargo update
Removing hermit-abi v0.3.9
Updating bytes      v1.8.0   -> v1.9.0
Updating cc         v1.2.1   -> v1.2.2
Updating indexmap   v2.6.0   -> v2.7.0
Updating libc       v0.2.166 -> v0.2.167
Updating mio        v1.0.2   -> v1.0.3
Updating socket2    v0.5.7   -> v0.5.8
Updating syn        v2.0.89  -> v2.0.90
2024-12-01 17:05:00 +01:00
778b245d56 [release] expose-dir-via-http v1.1.13 2024-11-27 22:57:31 +01:00
fbf1c5b9d3 [deps] cargo update
Updating tracing v0.1.40 -> v0.1.41
2024-11-27 22:57:30 +01:00
442cb9b825 [release] expose-dir-via-http v1.1.12 2024-11-27 17:56:01 +01:00
83e64db434 [deps] cargo update
Updating itoa         v1.0.13  -> v1.0.14
Updating libc         v0.2.164 -> v0.2.166
Updating tracing-core v0.1.32  -> v0.1.33
2024-11-27 17:55:55 +01:00
3 changed files with 126 additions and 117 deletions

212
Cargo.lock generated
View File

@ -1,6 +1,6 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
version = 4
[[package]]
name = "actix-codec"
@ -301,11 +301,12 @@ dependencies = [
[[package]]
name = "anstyle-wincon"
version = "3.0.6"
version = "3.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125"
checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e"
dependencies = [
"anstyle",
"once_cell",
"windows-sys 0.59.0",
]
@ -338,9 +339,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
name = "bitflags"
version = "2.6.0"
version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
[[package]]
name = "block-buffer"
@ -364,9 +365,9 @@ dependencies = [
[[package]]
name = "brotli-decompressor"
version = "4.0.1"
version = "4.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362"
checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
@ -380,9 +381,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
version = "1.8.0"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da"
checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9"
[[package]]
name = "bytestring"
@ -395,9 +396,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.2.1"
version = "1.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47"
checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c"
dependencies = [
"jobserver",
"libc",
@ -412,9 +413,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "4.5.21"
version = "4.5.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f"
checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767"
dependencies = [
"clap_builder",
"clap_derive",
@ -422,9 +423,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.5.21"
version = "4.5.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec"
checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863"
dependencies = [
"anstream",
"anstyle",
@ -434,9 +435,9 @@ dependencies = [
[[package]]
name = "clap_derive"
version = "4.5.18"
version = "4.5.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed"
dependencies = [
"heck",
"proc-macro2",
@ -446,9 +447,9 @@ dependencies = [
[[package]]
name = "clap_lex"
version = "0.7.3"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7"
checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6"
[[package]]
name = "colorchoice"
@ -475,9 +476,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",
]
@ -512,9 +513,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",
@ -555,13 +556,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.11"
version = "1.3.4"
dependencies = [
"actix-files",
"actix-web",
@ -570,9 +571,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",
@ -681,12 +682,6 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
[[package]]
name = "http"
version = "0.2.12"
@ -706,9 +701,9 @@ checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
[[package]]
name = "httparse"
version = "1.9.5"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946"
checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a"
[[package]]
name = "httpdate"
@ -857,15 +852,15 @@ dependencies = [
[[package]]
name = "impl-more"
version = "0.1.8"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aae21c3177a27788957044151cc2800043d127acaa460a47ebb9b84dfa2c6aa0"
checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2"
[[package]]
name = "indexmap"
version = "2.6.0"
version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652"
dependencies = [
"equivalent",
"hashbrown",
@ -879,9 +874,9 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
[[package]]
name = "itoa"
version = "1.0.13"
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2"
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
[[package]]
name = "jobserver"
@ -900,15 +895,15 @@ checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
[[package]]
name = "libc"
version = "0.2.164"
version = "0.2.170"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f"
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"
@ -939,9 +934,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.22"
version = "0.4.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e"
[[package]]
name = "memchr"
@ -967,20 +962,19 @@ dependencies = [
[[package]]
name = "miniz_oxide"
version = "0.8.0"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5"
dependencies = [
"adler2",
]
[[package]]
name = "mio"
version = "1.0.2"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd"
dependencies = [
"hermit-abi",
"libc",
"log",
"wasi",
@ -995,18 +989,18 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]]
name = "object"
version = "0.36.5"
version = "0.36.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e"
checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
dependencies = [
"memchr",
]
[[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"
@ -1045,9 +1039,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pin-project-lite"
version = "0.2.15"
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
[[package]]
name = "pin-utils"
@ -1078,18 +1072,18 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.92"
version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.37"
version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
dependencies = [
"proc-macro2",
]
@ -1126,9 +1120,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.5.7"
version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f"
dependencies = [
"bitflags",
]
@ -1185,9 +1179,9 @@ dependencies = [
[[package]]
name = "ryu"
version = "1.0.18"
version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd"
[[package]]
name = "scopeguard"
@ -1197,24 +1191,24 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "semver"
version = "1.0.23"
version = "1.0.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03"
[[package]]
name = "serde"
version = "1.0.215"
version = "1.0.218"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f"
checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.215"
version = "1.0.218"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0"
checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"
dependencies = [
"proc-macro2",
"quote",
@ -1223,9 +1217,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.133"
version = "1.0.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377"
checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6"
dependencies = [
"itoa",
"memchr",
@ -1282,15 +1276,15 @@ 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"
version = "0.5.7"
version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8"
dependencies = [
"libc",
"windows-sys 0.52.0",
@ -1310,9 +1304,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "syn"
version = "2.0.89"
version = "2.0.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e"
checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"
dependencies = [
"proc-macro2",
"quote",
@ -1332,9 +1326,9 @@ dependencies = [
[[package]]
name = "time"
version = "0.3.36"
version = "0.3.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"
dependencies = [
"deranged",
"itoa",
@ -1353,9 +1347,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
version = "0.2.18"
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"
dependencies = [
"num-conv",
"time-core",
@ -1373,9 +1367,9 @@ dependencies = [
[[package]]
name = "tokio"
version = "1.41.1"
version = "1.43.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33"
checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e"
dependencies = [
"backtrace",
"bytes",
@ -1390,9 +1384,9 @@ dependencies = [
[[package]]
name = "tokio-util"
version = "0.7.12"
version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078"
dependencies = [
"bytes",
"futures-core",
@ -1403,9 +1397,9 @@ dependencies = [
[[package]]
name = "tracing"
version = "0.1.40"
version = "0.1.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
dependencies = [
"log",
"pin-project-lite",
@ -1414,30 +1408,30 @@ dependencies = [
[[package]]
name = "tracing-core"
version = "0.1.32"
version = "0.1.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
dependencies = [
"once_cell",
]
[[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"
version = "2.8.0"
version = "2.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df"
checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
[[package]]
name = "unicode-ident"
version = "1.0.14"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe"
[[package]]
name = "url"
@ -1627,18 +1621,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",
@ -1670,27 +1664,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.11"
edition = "2021"
version = "1.3.4"
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),
)