update dependencies

This commit is contained in:
Elijah McMorris 2024-12-17 14:16:47 -08:00
parent 95669ff2c9
commit f2bc6ff33b
Signed by: NexVeridian
SSH key fingerprint: SHA256:bsA1SKZxuEcEVHAy3gY1HUeM5ykRJl0U0kQHQn0hMg8
4 changed files with 879 additions and 559 deletions

1345
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -4,24 +4,24 @@ version = "0.1.0"
edition = "2021" edition = "2021"
[dependencies] [dependencies]
polars = { version = "0.35", features = [ polars = { version = "0.45", features = [
"lazy", "lazy",
"strings", "strings",
"parquet", "parquet",
"round_series", "round_series",
"serde", "serde",
"json", "json",
] } ] }
axum = "0.6" axum = "0.7"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
tokio = { version = "1.26", features = ["full"] } tokio = { version = "1.42", features = ["full"] }
aide = { version = "0.12", features = ["redoc", "axum"] } aide = { version = "0.13", features = ["redoc", "axum"] }
schemars = { version = "0.8", features = ["chrono"] } schemars = { version = "0.8", features = ["chrono"] }
chrono = { version = "0.4", features = ["serde"] } chrono = { version = "0.4", features = ["serde"] }
glob = { version = "0.3" } glob = { version = "0.3" }
strum_macros = "0.25" strum_macros = "0.26"
tower = { version = "0.4", features = ["limit", "buffer"] } tower = { version = "0.5", features = ["limit", "buffer", "util"] }
tower-http = { version = "0.4", features = ["compression-zstd", "cors"] } tower-http = { version = "0.6", features = ["compression-zstd", "cors"] }
tower_governor = "0.1" tower_governor = "0.5"
lazy_static = "1.4" lazy_static = "1.5"

30
flake.lock generated
View file

@ -3,11 +3,11 @@
"advisory-db": { "advisory-db": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1727881133, "lastModified": 1733749954,
"narHash": "sha256-nnfwJjLA0uVIBgrGNYt9ButjBQFyj/I6MohQUHhJ78A=", "narHash": "sha256-2Ug80Uf/oUujxgh02Iy5vTG0V+Ab9+YUHuRLRY0ayiY=",
"owner": "rustsec", "owner": "rustsec",
"repo": "advisory-db", "repo": "advisory-db",
"rev": "a68ca4a1ec3950da7c82c522e8cfc424e28ca7f0", "rev": "ec9ce28714bb38d77a2223e7266df705500a7f11",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -18,11 +18,11 @@
}, },
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1727824512, "lastModified": 1734324364,
"narHash": "sha256-DvFQd58W20BEqh0BUt33eZhzPKBXGO/r9aiSFIVMaWU=", "narHash": "sha256-omYTR59TdH0AumP1cfh49fBnWZ52HjfdNfaLzCMZBx0=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "a376dd1efac7bce448857c62961c6311be26cb09", "rev": "60d7623f1320470bf2fdb92fd2dca1e9a27b98ce",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -39,11 +39,11 @@
"rust-analyzer-src": [] "rust-analyzer-src": []
}, },
"locked": { "locked": {
"lastModified": 1727850840, "lastModified": 1734417396,
"narHash": "sha256-i6lz63lPiRnInxCB19UGd2IkHo/SNE1kNq2M+jTRpLQ=", "narHash": "sha256-32x1Z+Pz3Jv0cK9EG56cFTKXy/mZ/c+Ikxw+aVfKHp4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "b85dddb88366113db4616a64925a8b2a23854f98", "rev": "a18d41b26e998e95a598858fdb86ba22fb5da47d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -57,11 +57,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1731533236,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -72,11 +72,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1727811607, "lastModified": 1734126203,
"narHash": "sha256-2ByOBflaIUJKeF9q6efVcYHljZXGZ7MnCWtseRvmpm8=", "narHash": "sha256-0XovF7BYP50rTD2v4r55tR5MuBLet7q4xIz6Rgh3BBU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1839883cd0068572aed75fb9442b508bbd9ef09c", "rev": "71a6392e367b08525ee710a93af2e80083b5b3e2",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -13,7 +13,7 @@ use axum::{
BoxError, Extension, Json, BoxError, Extension, Json,
}; };
use lazy_static::lazy_static; use lazy_static::lazy_static;
use std::{env, net::SocketAddr, time::Duration}; use std::{env, net::SocketAddr, sync::Arc, time::Duration};
use tower::{buffer::BufferLayer, limit::RateLimitLayer, ServiceBuilder}; use tower::{buffer::BufferLayer, limit::RateLimitLayer, ServiceBuilder};
use tower_governor::{ use tower_governor::{
governor::GovernorConfigBuilder, key_extractor::SmartIpKeyExtractor, GovernorLayer, governor::GovernorConfigBuilder, key_extractor::SmartIpKeyExtractor, GovernorLayer,
@ -67,7 +67,7 @@ async fn main() {
}; };
let rate_limit_ip = || { let rate_limit_ip = || {
let config = Box::new( let config = Arc::new(
GovernorConfigBuilder::default() GovernorConfigBuilder::default()
.per_millisecond(500) .per_millisecond(500)
.burst_size(25) .burst_size(25)
@ -77,11 +77,7 @@ async fn main() {
.unwrap(), .unwrap(),
); );
ServiceBuilder::new() ServiceBuilder::new().layer(GovernorLayer { config })
.layer(error_handler())
.layer(GovernorLayer {
config: Box::leak(config),
})
}; };
let cors = || { let cors = || {
@ -124,8 +120,8 @@ async fn main() {
let mut api = OpenApi { let mut api = OpenApi {
info: Info { info: Info {
summary: Some( summary: Some(
"A REST API for ARK Invest holdings data, writen in rust using [axum](https://github.com/tokio-rs/axum), "A REST API for ARK Invest holdings data, writen in rust using [axum](https://github.com/tokio-rs/axum),
Redoc/Swagger through [Aide](https://github.com/tamasfe/aide), Redoc/Swagger through [Aide](https://github.com/tamasfe/aide),
and parquet using [polars](https://github.com/pola-rs/polars)\n\nNot affiliated with Ark Invest and parquet using [polars](https://github.com/pola-rs/polars)\n\nNot affiliated with Ark Invest
".to_owned(), ".to_owned(),
), ),
@ -139,13 +135,14 @@ async fn main() {
let addr = SocketAddr::from(([0, 0, 0, 0], 3000)); let addr = SocketAddr::from(([0, 0, 0, 0], 3000));
println!("listening on {}", addr); println!("listening on {}", addr);
axum::Server::bind(&addr) let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
.serve( axum::serve(
app.finish_api(&mut api) listener,
.layer(Extension(api)) app.finish_api(&mut api)
.layer(CompressionLayer::new().zstd(true)) .layer(Extension(api))
.into_make_service(), .layer(CompressionLayer::new().zstd(true))
) .into_make_service(),
.await )
.unwrap(); .await
.unwrap();
} }