Compare commits
	
		
			26 Commits
		
	
	
		
			v1.1.25
			...
			54e8015773
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 54e8015773 | |||
| 30874a97f7 | |||
| 05142358e1 | |||
| 9f6891b4d5 | |||
| 9c52aa8833 | |||
| 0e244ebadd | |||
| 6ade932389 | |||
| 7dc14a83cf | |||
| 7a6da447ab | |||
| 69a0948cf7 | |||
| a738845b99 | |||
| fc8caf5f70 | |||
| 9fed0f99fa | |||
| 363d0f65a3 | |||
| 2df79f2cd9 | |||
| 89ab6fbe53 | |||
| f41fcb201b | |||
| c0284f8f76 | |||
| 8416ed51e7 | |||
| 238f452531 | |||
| 5836b71635 | |||
| 4e83bfe815 | |||
| 462910f6db | |||
| 3a4a9dc1f1 | |||
| 1750a14fdf | |||
| 1c2616fc0c | 
							
								
								
									
										119
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										119
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @@ -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.8.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" | ||||
| checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" | ||||
|  | ||||
| [[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.9.0" | ||||
| version = "1.10.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" | ||||
| checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" | ||||
|  | ||||
| [[package]] | ||||
| name = "bytestring" | ||||
| @@ -395,9 +396,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "cc" | ||||
| version = "1.2.5" | ||||
| version = "1.2.13" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" | ||||
| checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda" | ||||
| dependencies = [ | ||||
|  "jobserver", | ||||
|  "libc", | ||||
| @@ -412,9 +413,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | ||||
|  | ||||
| [[package]] | ||||
| name = "clap" | ||||
| version = "4.5.23" | ||||
| version = "4.5.28" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" | ||||
| checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff" | ||||
| dependencies = [ | ||||
|  "clap_builder", | ||||
|  "clap_derive", | ||||
| @@ -422,9 +423,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "clap_builder" | ||||
| version = "4.5.23" | ||||
| version = "4.5.27" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" | ||||
| checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" | ||||
| 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", | ||||
| @@ -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", | ||||
| @@ -561,7 +562,7 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" | ||||
|  | ||||
| [[package]] | ||||
| name = "expose-dir-via-http" | ||||
| version = "1.1.25" | ||||
| version = "1.2.0" | ||||
| dependencies = [ | ||||
|  "actix-files", | ||||
|  "actix-web", | ||||
| @@ -700,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" | ||||
| @@ -851,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.7.0" | ||||
| version = "2.7.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" | ||||
| checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" | ||||
| dependencies = [ | ||||
|  "equivalent", | ||||
|  "hashbrown", | ||||
| @@ -933,9 +934,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "log" | ||||
| version = "0.4.22" | ||||
| version = "0.4.25" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" | ||||
| checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" | ||||
|  | ||||
| [[package]] | ||||
| name = "memchr" | ||||
| @@ -961,9 +962,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "miniz_oxide" | ||||
| version = "0.8.2" | ||||
| version = "0.8.3" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" | ||||
| checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" | ||||
| dependencies = [ | ||||
|  "adler2", | ||||
| ] | ||||
| @@ -988,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" | ||||
| @@ -1038,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" | ||||
| @@ -1071,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", | ||||
| ] | ||||
| @@ -1178,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" | ||||
| @@ -1190,24 +1191,24 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" | ||||
|  | ||||
| [[package]] | ||||
| name = "semver" | ||||
| version = "1.0.24" | ||||
| version = "1.0.25" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" | ||||
| checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" | ||||
|  | ||||
| [[package]] | ||||
| name = "serde" | ||||
| version = "1.0.216" | ||||
| version = "1.0.217" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" | ||||
| checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" | ||||
| dependencies = [ | ||||
|  "serde_derive", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "serde_derive" | ||||
| version = "1.0.216" | ||||
| version = "1.0.217" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" | ||||
| checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
| @@ -1216,9 +1217,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "serde_json" | ||||
| version = "1.0.133" | ||||
| version = "1.0.138" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" | ||||
| checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" | ||||
| dependencies = [ | ||||
|  "itoa", | ||||
|  "memchr", | ||||
| @@ -1303,9 +1304,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" | ||||
|  | ||||
| [[package]] | ||||
| name = "syn" | ||||
| version = "2.0.90" | ||||
| version = "2.0.98" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" | ||||
| checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
| @@ -1366,9 +1367,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "tokio" | ||||
| version = "1.42.0" | ||||
| version = "1.43.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" | ||||
| checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" | ||||
| dependencies = [ | ||||
|  "backtrace", | ||||
|  "bytes", | ||||
| @@ -1422,15 +1423,15 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" | ||||
|  | ||||
| [[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.16" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" | ||||
| checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" | ||||
|  | ||||
| [[package]] | ||||
| name = "url" | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| [package] | ||||
| name = "expose-dir-via-http" | ||||
| version = "1.1.25" | ||||
| version = "1.2.0" | ||||
| edition = "2021" | ||||
|  | ||||
| [lints.rust] | ||||
|   | ||||
							
								
								
									
										19
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								src/main.rs
									
									
									
									
									
								
							| @@ -1,6 +1,7 @@ | ||||
| use std::{ | ||||
|     net::{IpAddr, SocketAddr}, | ||||
|     num::NonZeroUsize, | ||||
|     path::PathBuf, | ||||
|     thread::available_parallelism, | ||||
| }; | ||||
|  | ||||
| @@ -11,8 +12,8 @@ use clap::{crate_name, crate_version, Parser}; | ||||
| #[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,6 +24,15 @@ struct Args { | ||||
|     port: u16, | ||||
| } | ||||
|  | ||||
| fn parse_valid_dir(dir: &str) -> Result<PathBuf, String> { | ||||
|     let path = std::path::Path::new(dir); | ||||
|     if path.is_dir() { | ||||
|         Ok(path.to_path_buf()) | ||||
|     } else { | ||||
|         Err(format!("{} is not a valid directory", path.display())) | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[actix_web::main] | ||||
| async fn main() -> std::io::Result<()> { | ||||
|     let args = Args::parse(); | ||||
| @@ -30,7 +40,10 @@ async fn main() -> std::io::Result<()> { | ||||
|     let dir = 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 || { | ||||
|         App::new().service( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user