diff --git a/Cargo.lock b/Cargo.lock index a3ba496..ab87ac8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -41,7 +41,7 @@ dependencies = [ [[package]] name = "askama" version = "0.11.2" -source = "git+https://github.com/djc/askama.git?branch=main#e1da15beef5d1fec8451d70e2bc31a8151137e9e" +source = "git+https://github.com/djc/askama.git?rev=eeec6f0654f32270aec4e4a0d0f42e4ad39bc28e#eeec6f0654f32270aec4e4a0d0f42e4ad39bc28e" dependencies = [ "askama_derive", "askama_escape", @@ -53,7 +53,7 @@ dependencies = [ [[package]] name = "askama_axum" version = "0.1.0" -source = "git+https://github.com/djc/askama.git?branch=main#e1da15beef5d1fec8451d70e2bc31a8151137e9e" +source = "git+https://github.com/djc/askama.git?rev=eeec6f0654f32270aec4e4a0d0f42e4ad39bc28e#eeec6f0654f32270aec4e4a0d0f42e4ad39bc28e" dependencies = [ "askama", "axum-core", @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "askama_derive" version = "0.12.0" -source = "git+https://github.com/djc/askama.git?branch=main#e1da15beef5d1fec8451d70e2bc31a8151137e9e" +source = "git+https://github.com/djc/askama.git?rev=eeec6f0654f32270aec4e4a0d0f42e4ad39bc28e#eeec6f0654f32270aec4e4a0d0f42e4ad39bc28e" dependencies = [ "mime", "mime_guess", @@ -78,13 +78,13 @@ dependencies = [ [[package]] name = "askama_escape" version = "0.10.3" -source = "git+https://github.com/djc/askama.git?branch=main#e1da15beef5d1fec8451d70e2bc31a8151137e9e" +source = "git+https://github.com/djc/askama.git?rev=eeec6f0654f32270aec4e4a0d0f42e4ad39bc28e#eeec6f0654f32270aec4e4a0d0f42e4ad39bc28e" [[package]] name = "async-trait" -version = "0.1.58" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" +checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364" dependencies = [ "proc-macro2", "quote", @@ -99,9 +99,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.5.17" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acee9fd5073ab6b045a275b3e709c163dd36c90685219cb21804a147b58dba43" +checksum = "08b108ad2665fa3f6e6a517c3d80ec3e77d224c47d605167aefaa5d7ef97fa48" dependencies = [ "async-trait", "axum-core", @@ -117,8 +117,10 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", + "rustversion", "serde", "serde_json", + "serde_path_to_error", "serde_urlencoded", "sync_wrapper", "tokio", @@ -130,9 +132,9 @@ dependencies = [ [[package]] name = "axum-auth" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9770f9a9147b2324066609acb5495538cb25f973129663fba2658ba7ed69407" +checksum = "620b37645b77baab8160f93421568d7b3dd25da0a160fab38eb1c4ef611f6d98" dependencies = [ "async-trait", "axum-core", @@ -142,9 +144,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.2.9" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e5939e02c56fecd5c017c37df4238c0a839fa76b7f97acdd7efb804fd181cc" +checksum = "79b8558f5a0581152dc94dcd289132a1d377494bdeafcd41869b3258e3e2ad92" dependencies = [ "async-trait", "bytes", @@ -152,10 +154,23 @@ dependencies = [ "http", "http-body", "mime", + "rustversion", "tower-layer", "tower-service", ] +[[package]] +name = "axum-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4df0fc33ada14a338b799002f7e8657711422b25d4e16afb032708d6b185621" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "backtrace" version = "0.3.66" @@ -166,7 +181,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.5.4", "object", "rustc-demangle", ] @@ -411,12 +426,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.6.2", ] [[package]] @@ -489,6 +504,12 @@ version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -608,9 +629,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.137" +version = "0.2.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" +checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8" [[package]] name = "libm" @@ -669,9 +690,9 @@ dependencies = [ [[package]] name = "matchit" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" [[package]] name = "memchr" @@ -710,6 +731,15 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + [[package]] name = "mio" version = "0.8.5" @@ -730,6 +760,7 @@ dependencies = [ "askama_axum", "axum", "axum-auth", + "axum-macros", "color-eyre", "linkify", "once_cell", @@ -820,9 +851,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.77" +version = "0.9.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a" +checksum = "5454462c0eced1e97f2ec09036abc8da362e66802f66fd20f86854d9d8cbcbc4" dependencies = [ "autocfg", "cc", @@ -855,9 +886,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ "cfg-if", "libc", @@ -1064,18 +1095,18 @@ checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" [[package]] name = "serde" -version = "1.0.147" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "256b9932320c590e707b94576e3cc1f7c9024d0ee6612dfbcf1cb106cbe8e055" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.147" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "b4eae9b04cbffdfd550eb462ed33bc6a1b68c935127d008b27444d08380f94e4" dependencies = [ "proc-macro2", "quote", @@ -1104,6 +1135,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_path_to_error" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "184c643044780f7ceb59104cef98a5a6f12cb2288a7bc701ab93a362b49fd47d" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -1190,9 +1230,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.103" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908" dependencies = [ "proc-macro2", "quote", @@ -1297,9 +1337,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.22.0" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3" +checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46" dependencies = [ "autocfg", "bytes", @@ -1312,14 +1352,14 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "winapi", + "windows-sys 0.42.0", ] [[package]] name = "tokio-macros" -version = "1.8.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", @@ -1353,9 +1393,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ "bitflags", "bytes", @@ -1463,9 +1503,9 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "typenum" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "unicase" @@ -1705,9 +1745,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.2+zstd.1.5.2" +version = "2.0.4+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24faa29d97c8ddca9b37b680e3bd2d5439d864a9cac3a0640d086b71c908bb83" +checksum = "4fa202f2ef00074143e219d15b62ffc317d17cc33909feac471c044087cad7b0" dependencies = [ "cc", "libc", diff --git a/crates/model_server/Cargo.toml b/crates/model_server/Cargo.toml index 4b57660..7e02b31 100644 --- a/crates/model_server/Cargo.toml +++ b/crates/model_server/Cargo.toml @@ -7,20 +7,21 @@ version = "0.1.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -axum = "0.5.16" -axum-auth = {version = "0.3", default-features = false, features = ["auth-bearer"]} +axum = "0.6.1" +axum-macros = "0.3.0" +axum-auth = {version = "0.4.0", default-features = false, features = ["auth-bearer"]} color-eyre = "0.6.2" linkify = "0.9.0" once_cell = "1.15.0" -serde = {version = "1.0", features = ["derive"]} -serde_json = "1.0" +serde = {version = "1.0.149", features = ["derive"]} +serde_json = "1.0.89" #tensorflow = {version = "0.19.1", features = ["tensorflow_gpu"]} -askama = {git = "https://github.com/djc/askama.git", branch = "main"} -askama_axum = {git = "https://github.com/djc/askama.git", branch = "main"} +askama = {git = "https://github.com/djc/askama.git", rev = "eeec6f0654f32270aec4e4a0d0f42e4ad39bc28e"} +askama_axum = {git = "https://github.com/djc/askama.git", rev = "eeec6f0654f32270aec4e4a0d0f42e4ad39bc28e"} tensorflow = {version = "0.19.1"} -tokio = {version = "1.0", features = ["full"]} -tracing = "0.1" -tracing-subscriber = {version = "0.3", features = ["env-filter"]} +tokio = {version = "1.23.0", features = ["full"]} +tracing = "0.1.37" +tracing-subscriber = {version = "0.3.16", features = ["env-filter"]} voca_rs = "1.14.0" [dev-dependencies] diff --git a/crates/model_server/src/main.rs b/crates/model_server/src/main.rs index 657feff..7585bdb 100644 --- a/crates/model_server/src/main.rs +++ b/crates/model_server/src/main.rs @@ -2,12 +2,13 @@ use askama_axum::Template; use axum::routing::get; use axum::{http::StatusCode, response::IntoResponse, routing::post, Json, Router}; use axum_auth::AuthBearer; +use axum_macros::debug_handler; use color_eyre::eyre::{bail, Result}; use linkify::LinkFinder; use once_cell::sync::OnceCell; use serde::{Deserialize, Serialize}; use std::io::Write; -use std::net::{Ipv4Addr, Ipv6Addr}; +use std::net::Ipv6Addr; use std::{fs::OpenOptions, net::SocketAddr}; use tensorflow::{Graph, SavedModelBundle, SessionOptions, SessionRunArgs, Tensor}; use tracing::{error, info}; @@ -103,9 +104,10 @@ async fn test(Json(payload): Json) -> impl IntoResponse { (StatusCode::OK, Json(response)) } +#[debug_handler] async fn submit( - Json(payload): Json, AuthBearer(token): AuthBearer, + Json(payload): Json, ) -> impl IntoResponse { let access_token = match std::env::var("ACCESS_TOKEN") { Ok(val) => val, @@ -122,9 +124,10 @@ async fn submit( StatusCode::NOT_IMPLEMENTED } +#[debug_handler] async fn submit_for_review( - Json(payload): Json, AuthBearer(token): AuthBearer, + Json(payload): Json, ) -> impl IntoResponse { let access_token = match std::env::var("ACCESS_TOKEN") { Ok(val) => val,