Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
404e2dd
feat: update & fortune
eastspire Mar 15, 2025
23a98a6
feat: randomNumber
eastspire Mar 15, 2025
ac7dae2
feat: max row 500
eastspire Mar 15, 2025
84934be
feat: update
eastspire Mar 15, 2025
f83757b
feat: Fortune
eastspire Mar 15, 2025
95d0891
feat: fortunes
eastspire Mar 15, 2025
900c473
feat: update
eastspire Mar 15, 2025
df76bd1
feat: update
eastspire Mar 15, 2025
1d412d6
feat: update
eastspire Mar 15, 2025
14c8eaf
feat: update
eastspire Mar 15, 2025
25a6635
feat: fortunes
eastspire Mar 15, 2025
6b51cca
feat: fortunes
eastspire Mar 15, 2025
ff93dff
feat: fortunes
eastspire Mar 15, 2025
b326d96
feat: fortunes
eastspire Mar 15, 2025
ff10888
feat: fortunes
eastspire Mar 15, 2025
6323de9
feat: fortunes
eastspire Mar 15, 2025
90f95a8
feat: update
eastspire Mar 15, 2025
f8c80dd
feat: update
eastspire Mar 15, 2025
88a5af3
feat: update
eastspire Mar 15, 2025
6a74721
feat: update
eastspire Mar 15, 2025
a769be7
feat: update
eastspire Mar 15, 2025
c332dcc
feat: update
eastspire Mar 15, 2025
d4fe13b
feat: update
eastspire Mar 15, 2025
6e6bdf6
feat: update
eastspire Mar 15, 2025
adbf842
feat: update
eastspire Mar 15, 2025
299faa3
feat: update
eastspire Mar 15, 2025
c1adf76
feat: update
eastspire Mar 15, 2025
96c65fe
feat: update
eastspire Mar 15, 2025
9930a36
feat: update
eastspire Mar 15, 2025
fe8bef4
feat: update
eastspire Mar 15, 2025
efa40a9
feat: update
eastspire Mar 15, 2025
382f535
feat: update
eastspire Mar 15, 2025
f639737
feat: update
eastspire Mar 15, 2025
c69e72e
feat: update
eastspire Mar 15, 2025
2eda143
feat: update
eastspire Mar 15, 2025
39982ec
feat: update
eastspire Mar 15, 2025
db3f495
feat: update
eastspire Mar 15, 2025
374fb85
feat: update
eastspire Mar 15, 2025
c607a07
feat: update
eastspire Mar 15, 2025
332ad4f
feat: update
eastspire Mar 15, 2025
2998cde
feat: update
eastspire Mar 15, 2025
37ebcd1
feat: update
eastspire Mar 15, 2025
c80fd29
feat: update
eastspire Mar 16, 2025
3ffc0f5
feat: cache
eastspire Mar 16, 2025
ce6b7ec
feat: cache
eastspire Mar 16, 2025
fbf14e2
feat: config
eastspire Mar 16, 2025
f8fecf2
feat: config
eastspire Mar 16, 2025
f108557
feat: config
eastspire Mar 16, 2025
9c2ef17
feat: v4.36.1
eastspire Mar 16, 2025
8bf1c06
docs: readme
eastspire Mar 16, 2025
c347a8c
feat: remove dyn
eastspire Mar 16, 2025
be44a7f
docs: readme
eastspire Mar 16, 2025
b6ef7b3
feat: lock
eastspire Mar 16, 2025
c90214f
feat: lock
eastspire Mar 16, 2025
5da4ec2
feat: lock
eastspire Mar 16, 2025
908c350
feat: lock
eastspire Mar 16, 2025
a870482
feat: db pool
eastspire Mar 16, 2025
7f6484c
feat: db pool
eastspire Mar 16, 2025
23ea395
feat: lock
eastspire Mar 16, 2025
f3de990
feat: lock
eastspire Mar 16, 2025
e0ea435
feat: db
eastspire Mar 16, 2025
b0d5b56
feat: db
eastspire Mar 16, 2025
fc640d6
feat: db
eastspire Mar 16, 2025
15bb467
feat: db
eastspire Mar 16, 2025
895ef97
feat: db
eastspire Mar 16, 2025
8440913
feat: db
eastspire Mar 16, 2025
b349b3c
feat: db
eastspire Mar 16, 2025
b15771b
feat: db
eastspire Mar 16, 2025
674f516
feat: rand
eastspire Mar 16, 2025
394c2ad
feat: rand
eastspire Mar 16, 2025
84336e6
feat: rand
eastspire Mar 16, 2025
2872352
feat: rand
eastspire Mar 16, 2025
2f0398b
feat: rand
eastspire Mar 16, 2025
3f0cc7e
feat: port
eastspire Mar 16, 2025
4c9c41e
feat: port
eastspire Mar 16, 2025
ae191b8
feat: port
eastspire Mar 16, 2025
0dcafc4
feat: db
eastspire Mar 16, 2025
cc5b089
feat: db
eastspire Mar 17, 2025
6234158
feat: db
eastspire Mar 17, 2025
8cf74b0
feat: lock
eastspire Mar 17, 2025
0abbc6b
feat: lock
eastspire Mar 17, 2025
ad24c54
feat: v4.41.0
eastspire Mar 20, 2025
854be9e
feat: v4.42.0
eastspire Mar 21, 2025
87e78ba
Merge remote-tracking branch 'upstream/master'
eastspire Mar 21, 2025
adf4c86
Merge remote-tracking branch 'upstream/master'
eastspire Mar 21, 2025
d96191b
Merge remote-tracking branch 'upstream/master'
eastspire Mar 21, 2025
a4026c2
feat: inline
eastspire Mar 21, 2025
c9e3243
feat: dockerfile
eastspire Mar 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions frameworks/Rust/hyperlane/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "hyperlane_techempower"
version = "0.0.1"
edition = "2021"
edition = "2024"
authors = ["ltpp-universe <[email protected]>"]
license = "MIT"
description = """Hyperlane is a lightweight and high-performance Rust HTTP server library designed to simplify network service development. It supports HTTP request parsing, response building, and TCP communication, making it ideal for building modern web services. Additionally, it provides support for request and response middleware, WebSocket, and Server-Sent Events (SSE), enabling flexible and efficient real-time communication."""
Expand All @@ -18,7 +18,7 @@ exclude = [
]

[dependencies]
hyperlane = "4.36.1"
hyperlane = "4.42.1"
rand = "0.9.0"
serde = "1.0.219"
sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] }
Expand Down
4 changes: 3 additions & 1 deletion frameworks/Rust/hyperlane/hyperlane.dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
FROM rust:1.85

RUN apt-get update -yqq && apt-get install -yqq cmake g++ binutils lld

ENV POSTGRES_URL=postgres://benchmarkdbuser:benchmarkdbpass@tfb-database:5432/hello_world

ADD ./ /hyperlane_techempower
WORKDIR /hyperlane_techempower

RUN cargo clean
RUN RUSTFLAGS="-C target-cpu=native" cargo build --release
RUN RUSTFLAGS="-C target-cpu=native -C link-arg=-fuse-ld=lld" cargo build --release

EXPOSE 8080

Expand Down
22 changes: 8 additions & 14 deletions frameworks/Rust/hyperlane/src/db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,18 @@ use crate::*;

#[inline]
pub async fn get_db_connection() -> DbPoolConnection {
if let Some(db_pool) = DB.read().await.clone() {
return db_pool;
if let Some(db_pool) = DB.get() {
return db_pool.clone();
};
let db_pool: DbPoolConnection = connection_db().await;
{
let mut db_pool_lock: RwLockWriteGuard<'_, Option<DbPoolConnection>> = DB.write().await;
*db_pool_lock = Some(db_pool.clone());
}
DB.set(db_pool.clone())
.expect("Failed to initialize DB_POOL");
db_pool
}

#[inline]
#[cfg(feature = "dev")]
pub async fn create_batabase() {
pub async fn create_database() {
let db_pool: DbPoolConnection = get_db_connection().await;
let _ = query(&format!("CREATE DATABASE {};", DATABASE_NAME))
.execute(&db_pool)
Expand Down Expand Up @@ -97,8 +95,7 @@ pub async fn init_cache() {
res.push(QueryRow::new(id, random_number));
}
}
let mut cache: RwLockWriteGuard<'_, Vec<QueryRow>> = CACHE.write().await;
*cache = res;
let _ = CACHE.set(res);
}

#[inline]
Expand Down Expand Up @@ -170,13 +167,10 @@ pub async fn get_update_data(

#[inline]
pub async fn init_db() {
{
let mut db_pool_lock: RwLockWriteGuard<'_, Option<DbPoolConnection>> = DB.write().await;
*db_pool_lock = Some(connection_db().await);
}
get_db_connection().await;
#[cfg(feature = "dev")]
{
create_batabase().await;
create_database().await;
create_table().await;
insert_records().await;
}
Expand Down
5 changes: 2 additions & 3 deletions frameworks/Rust/hyperlane/src/lazy.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
use crate::*;

pub static DB: Lazy<ArcRwLock<Option<DbPoolConnection>>> =
Lazy::new(|| Arc::new(RwLock::new(None)));
pub static CACHE: Lazy<ArcRwLock<Vec<QueryRow>>> = Lazy::new(|| arc_rwlock(vec![]));
pub static DB: OnceCell<DbPoolConnection> = OnceCell::new();
pub static CACHE: OnceCell<Vec<QueryRow>> = OnceCell::new();
14 changes: 4 additions & 10 deletions frameworks/Rust/hyperlane/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,9 @@ pub(crate) mod utils;

pub(crate) use constant::*;
pub(crate) use db::*;
pub(crate) use hyperlane::{
once_cell::sync::Lazy,
serde::*,
serde_json::json,
tokio::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard},
*,
};
pub(crate) use hyperlane::{once_cell::sync::OnceCell, serde::*, serde_json::json, *};
pub(crate) use lazy::*;
pub(crate) use r#type::*;
pub(crate) use rand::{rngs::SmallRng, Rng, SeedableRng};
pub(crate) use rand::{Rng, SeedableRng, rng, rngs::SmallRng};
pub(crate) use request_middleware::*;
pub(crate) use response_middleware::*;
pub(crate) use route::*;
Expand All @@ -28,7 +21,8 @@ pub(crate) use sqlx::{
postgres::{PgPoolOptions, PgRow},
*,
};
pub(crate) use std::{fmt, sync::Arc};
pub(crate) use std::fmt;
pub(crate) use r#type::*;
pub(crate) use utils::*;

#[tokio::main]
Expand Down
2 changes: 1 addition & 1 deletion frameworks/Rust/hyperlane/src/route.rs
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ pub async fn cached_queries(controller_data: ControllerData) {
.min(ROW_LIMIT as Queries)
.max(1);
let mut res: Vec<QueryRow> = Vec::with_capacity(count as usize);
let cache: RwLockReadGuard<'_, Vec<QueryRow>> = CACHE.read().await;
let cache: Vec<QueryRow> = CACHE.get().cloned().unwrap_or_default();
for i in 0..count {
res.push(cache[i as usize].clone());
}
Expand Down
4 changes: 2 additions & 2 deletions frameworks/Rust/hyperlane/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ pub async fn run_server() {
server.log_interval_millis(1_000_000_000).await;
server.disable_inner_log().await;
server.disable_inner_print().await;
server.route("/json", json).await;
server.route("/plaintext", plaintext).await;
server.route("/json", json).await;
server.route("/cached-quer", cached_queries).await;
server.route("/db", db).await;
server.route("/query", queries).await;
server.route("/fortunes", fortunes).await;
server.route("/upda", updates).await;
server.route("/cached-quer", cached_queries).await;
server.request_middleware(request).await;
server.response_middleware(response).await;
server.listen().await;
Expand Down
6 changes: 5 additions & 1 deletion frameworks/Rust/hyperlane/src/type.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,13 @@ impl FortunesTemplate {
}

impl fmt::Display for FortunesTemplate {
#[inline]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let fortunes: &Vec<Fortunes> = &self.0;
let _ = write!(f, "<!DOCTYPE html><html><head><title>Fortunes</title></head><body><table><tr><th>id</th><th>message</th></tr>");
let _ = write!(
f,
"<!DOCTYPE html><html><head><title>Fortunes</title></head><body><table><tr><th>id</th><th>message</th></tr>"
);
for tem in fortunes.iter() {
let row: String = format!(
"<tr><td>{}</td><td>{}</td></tr>",
Expand Down
2 changes: 0 additions & 2 deletions frameworks/Rust/hyperlane/src/utils.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
use rand::rng;

use crate::*;

#[inline]
Expand Down
5 changes: 0 additions & 5 deletions frameworks/Rust/hyperlane/templates/fortune.hbs

This file was deleted.

Loading