WGQH6HZG7HZNKJYKXV6DACDXMPRA6YPXBPA6BOHZDMGVF2DLBQ6QC use std::convert::Infallible;use std::net::SocketAddr;use hyper::{Body,Request,Response,Server,service::{service_fn,make_service_fn}};use zhur_common::{log::*,pretty_env_logger};async fn handle_reqs(_req: Request<Body>) -> Result<Response<Body>, Infallible> {Ok(Response::new("Hi there!".into()))}#[tokio::main]async fn main() {pretty_env_logger::init();let port = match std::env::var("ZHUR_GATE_PORT") {Ok(v) => match v.parse::<u16>() {Ok(n) => n,_ => {error!("ZHUR_GATE_PORT set to invalid value \"{}\", exiting.", &v);return;}},_ => {warn!("ZHUR_GATE_PORT env var not set. Assuming port 8080.");8080}};let addr = SocketAddr::from(([127, 0, 0, 1], port));let make_svc = make_service_fn(|_conn| async {Ok::<_, Infallible>(service_fn(handle_reqs))});let server = Server::bind(&addr).serve(make_svc);if let Err(e) = server.await {error!("HTTP server error: {}", e);}}
# zhur_gateThis is the HTTP gateway for Zhur. Its task is to receive HTTP requests, transform them into Zhur invocations, and return the appropriate response.
[package]name = "zhur_gate"description = "Zhur HTTP gateway"version = "0.1.0"authors = ["oreganoli <3611916+oreganoli@users.noreply.github.com>"]edition = "2018"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]zhur_common = { path = "../zhur_common" }hyper = { version = "0.14.2", features = ["full"] }tokio = { version = "1.0.1", features = ["full"] }
[[package]]name = "fnv"version = "1.0.7"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"[[package]]name = "futures-channel"version = "0.3.9"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f01c61843314e95f96cc9245702248733a3a3d744e43e2e755e3c7af8348a0a9"dependencies = ["futures-core",][[package]]name = "futures-core"version = "0.3.9"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "db8d3b0917ff63a2a96173133c02818fac4a746b0a57569d3baca9ec0e945e08"[[package]]name = "futures-sink"version = "0.3.9"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f6adabac1290109cfa089f79192fb6244ad2c3f1cc2281f3e1dd987592b71feb"[[package]]name = "futures-task"version = "0.3.9"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a92a0843a2ff66823a8f7c77bffe9a09be2b64e533562c412d63075643ec0038"[[package]]name = "futures-util"version = "0.3.9"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "036a2107cdeb57f6d7322f1b6c363dad67cd63ca3b7d1b925bdf75bd5d96cda9"dependencies = ["futures-core","futures-task","pin-project-lite","pin-utils",][[package]]name = "h2"version = "0.3.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "6b67e66362108efccd8ac053abafc8b7a8d86a37e6e48fc4f6f7485eb5e9e6a5"dependencies = ["bytes","fnv","futures-core","futures-sink","futures-util","http","indexmap","slab","tokio","tokio-util","tracing","tracing-futures",]
name = "http"version = "0.2.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747"dependencies = ["bytes","fnv","itoa",][[package]]name = "http-body"version = "0.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "2861bd27ee074e5ee891e8b539837a9430012e249d7f0ca2d795650f579c1994"dependencies = ["bytes","http",][[package]]name = "httparse"version = "1.3.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"[[package]]name = "httpdate"version = "0.3.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47"[[package]]
][[package]]name = "hyper"version = "0.14.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "12219dc884514cb4a6a03737f4413c0e01c23a1b059b0156004b23f1e19dccbe"dependencies = ["bytes","futures-channel","futures-core","futures-util","h2","http","http-body","httparse","httpdate","itoa","pin-project 1.0.4","socket2","tokio","tower-service","tracing","want",
name = "indexmap"version = "1.6.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"dependencies = ["autocfg","hashbrown",][[package]]name = "instant"version = "0.1.9"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"dependencies = ["cfg-if 1.0.0",][[package]]name = "itoa"version = "0.4.7"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"[[package]]
][[package]]name = "mio"version = "0.7.7"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e50ae3f04d169fcc9bde0b547d1c205219b7157e07ded9c5aff03e0637cb3ed7"dependencies = ["libc","log","miow","ntapi","winapi",][[package]]name = "miow"version = "0.3.6"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897"dependencies = ["socket2","winapi",][[package]]name = "ntapi"version = "0.3.6"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"dependencies = ["winapi",
name = "num_cpus"version = "1.13.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"dependencies = ["hermit-abi","libc",][[package]]name = "once_cell"version = "1.5.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"[[package]]name = "parking_lot"version = "0.11.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"dependencies = ["instant","lock_api","parking_lot_core",][[package]]name = "parking_lot_core"version = "0.8.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272"dependencies = ["cfg-if 1.0.0","instant","libc","redox_syscall","smallvec","winapi",][[package]]name = "pin-project"version = "0.4.27"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"dependencies = ["pin-project-internal 0.4.27",][[package]]name = "pin-project"version = "1.0.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "95b70b68509f17aa2857863b6fa00bf21fc93674c7a8893de2f469f6aa7ca2f2"dependencies = ["pin-project-internal 1.0.4",][[package]]name = "pin-project-internal"version = "0.4.27"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895"dependencies = ["proc-macro2","quote","syn",][[package]]name = "pin-project-internal"version = "1.0.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "caa25a6393f22ce819b0f50e0be89287292fda8d425be38ee0ca14c4931d9e71"dependencies = ["proc-macro2","quote","syn",][[package]]name = "pin-project-lite"version = "0.2.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827"[[package]]name = "pin-utils"version = "0.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"[[package]]
name = "slab"version = "0.4.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"[[package]]name = "smallvec"version = "1.6.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"[[package]]name = "socket2"version = "0.3.19"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"dependencies = ["cfg-if 1.0.0","libc","winapi",][[package]]
][[package]]name = "tokio"version = "1.0.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d258221f566b6c803c7b4714abadc080172b272090cdc5e244a6d4dd13c3a6bd"dependencies = ["autocfg","bytes","libc","memchr","mio","num_cpus","once_cell","parking_lot","pin-project-lite","signal-hook-registry","tokio-macros","winapi",
name = "tokio-macros"version = "1.0.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "42517d2975ca3114b22a16192634e8241dc5cc1f130be194645970cc1c371494"dependencies = ["proc-macro2","quote","syn",][[package]]name = "tokio-stream"version = "0.1.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e4cdeb73537e63f98adcd73138af75e3f368ccaecffaa29d7eb61b9f5a440457"dependencies = ["futures-core","pin-project-lite","tokio",][[package]]name = "tokio-util"version = "0.6.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "36135b7e7da911f5f8b9331209f7fab4cc13498f3fff52f72a710c78187e3148"dependencies = ["bytes","futures-core","futures-sink","log","pin-project-lite","tokio","tokio-stream",][[package]]
name = "tower-service"version = "0.3.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"[[package]]name = "tracing"version = "0.1.22"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"dependencies = ["cfg-if 1.0.0","pin-project-lite","tracing-core",][[package]]name = "tracing-core"version = "0.1.17"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"dependencies = ["lazy_static",][[package]]name = "tracing-futures"version = "0.2.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"dependencies = ["pin-project 0.4.27","tracing",][[package]]name = "try-lock"version = "0.2.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"[[package]]