Initial Rust implementation of time-server
This commit is contained in:
commit
44ae0b38aa
4 changed files with 1519 additions and 0 deletions
1455
Cargo.lock
generated
Normal file
1455
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
16
Cargo.toml
Normal file
16
Cargo.toml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
[package]
|
||||
name = "time-rs"
|
||||
version = "0.1.0"
|
||||
description = ""
|
||||
license = "MIT"
|
||||
edition = "2021"
|
||||
rust-version = "1.75.0"
|
||||
|
||||
include = [
|
||||
"Cargo.toml",
|
||||
"src/**/*",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
actix-web = "4.5.0"
|
||||
chrono = "0.4.33"
|
||||
15
Dockerfile
Normal file
15
Dockerfile
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
FROM docker.io/library/rust:1.75 AS build
|
||||
|
||||
WORKDIR /code
|
||||
|
||||
COPY Cargo.toml Cargo.lock /code/
|
||||
COPY src/ /code/src/
|
||||
|
||||
RUN cargo build --release --bin time-rs
|
||||
|
||||
FROM docker.io/library/debian:bookworm
|
||||
|
||||
WORKDIR /code
|
||||
COPY --from=build /code/target/release/time-rs /code/time-rs
|
||||
|
||||
CMD ["/code/time-rs"]
|
||||
33
src/main.rs
Normal file
33
src/main.rs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
use std::io;
|
||||
|
||||
use actix_web::{App, HttpServer, rt, web};
|
||||
use chrono::{Datelike, Utc};
|
||||
|
||||
async fn status_view() -> io::Result<String> {
|
||||
Ok("OK".into())
|
||||
}
|
||||
|
||||
async fn now_view() -> io::Result<String> {
|
||||
let now = Utc::now();
|
||||
Ok(now.format("%Y-%m-%d %H:%M:%S").to_string().into())
|
||||
}
|
||||
|
||||
async fn ordinal_view() -> io::Result<String> {
|
||||
let now = Utc::now();
|
||||
Ok(now.ordinal().to_string().into())
|
||||
}
|
||||
|
||||
|
||||
fn main() -> io::Result<()> {
|
||||
rt::System::new().block_on(
|
||||
HttpServer::new(|| {
|
||||
App::new()
|
||||
.route("/", web::get().to(now_view))
|
||||
.route("/diy", web::get().to(ordinal_view))
|
||||
.route("/status", web::get().to(status_view))
|
||||
})
|
||||
.bind(("0.0.0.0", 8000))?
|
||||
.workers(1)
|
||||
.run()
|
||||
)
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue