Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(deps): Implement async-trait using the standard library #532

Merged
merged 4 commits into from
Feb 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
104 changes: 52 additions & 52 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,29 +22,35 @@ root=$(pwd)
[ ! -d uploads ] && mkdir uploads

# Separate arrays for target architectures and Docker images
target_architectures=("x86_64-unknown-linux-musl" "aarch64-unknown-linux-musl" "armv7-unknown-linux-musleabi" "armv7-unknown-linux-musleabihf" "arm-unknown-linux-musleabi" "arm-unknown-linux-musleabihf" "armv5te-unknown-linux-musleabi" "i686-unknown-linux-gnu" "i586-unknown-linux-gnu" "x86_64-pc-windows-msvc")
docker_images=("ghcr.io/gngpp/rust-musl-cross:x86_64-musl" "ghcr.io/gngpp/rust-musl-cross:aarch64-musl" "ghcr.io/gngpp/rust-musl-cross:armv7-musleabi" "ghcr.io/gngpp/rust-musl-cross:armv7-musleabihf" "ghcr.io/gngpp/rust-musl-cross:arm-musleabi" "ghcr.io/gngpp/rust-musl-cross:arm-musleabihf" "ghcr.io/gngpp/rust-musl-cross:armv5te-musleabi" "ghcr.io/gngpp/rust-musl-cross:i686-musl" "ghcr.io/gngpp/rust-musl-cross:i586-musl" "ghcr.io/gngpp/cargo-xwin:latest")

get_docker_image() {
local target_arch="$1"
local index
for ((index = 0; index < ${#target_architectures[@]}; ++index)); do
if [ "${target_architectures[index]}" == "$target_arch" ]; then
echo "${docker_images[index]}"
return 0
fi
done

echo "Architecture not found"
return 1
target_architectures=(
"x86_64-unknown-linux-musl"
"aarch64-unknown-linux-musl"
"armv7-unknown-linux-musleabi"
"armv7-unknown-linux-musleabihf"
"arm-unknown-linux-musleabi"
"arm-unknown-linux-musleabihf"
"armv5te-unknown-linux-musleabi"
"i686-unknown-linux-gnu"
"i586-unknown-linux-gnu"
"x86_64-pc-windows-msvc"
)

pull_docker_image() {
image="ghcr.io/gngpp/rust-musl-cross:$1"
echo "Pulling $image"
docker pull $image
}

rmi_docker_image() {
echo "Removing $1"
docker rmi $1
image="ghcr.io/gngpp/rust-musl-cross:$1"
echo "Removing $image docker image"
if [ "$rmi" = "true" ]; then
docker rmi $image
fi
}

build_macos_target() {
echo "Building $1"
cargo build --release --target $1 --features mimalloc
sudo chmod -R 777 target
cd target/$1/release
Expand All @@ -56,6 +62,8 @@ build_macos_target() {
}

build_linux_target() {
docker_image="ghcr.io/gngpp/rust-musl-cross:$1"

features=""
if [ "$1" = "armv5te-unknown-linux-musleabi" ] || [ "$1" = "arm-unknown-linux-musleabi" ] || [ "$1" = "arm-unknown-linux-musleabihf" ]; then
features="--features rpmalloc"
Expand All @@ -67,8 +75,7 @@ build_linux_target() {
fi
fi

docker_image=$(get_docker_image "$1")

echo "Building $1"
docker run --rm -t --user=$UID:$(id -g $USER) \
-v $(pwd):/home/rust/src \
-v $HOME/.cargo/registry:/root/.cargo/registry \
Expand All @@ -90,8 +97,9 @@ build_linux_target() {
}

build_windows_target() {
docker_image=$(get_docker_image "$1")
docker_image="ghcr.io/gngpp/rust-musl-cross:$1"

echo "Building $1"
docker run --rm -t \
-v $(pwd):/home/rust/src \
-v $HOME/.cargo/registry:/usr/local/cargo/registry \
Expand All @@ -109,48 +117,40 @@ build_windows_target() {
}

if [ "$os" = "windows" ]; then
target_list=(x86_64-pc-windows-msvc)
for target in "${target_list[@]}"; do
echo "Building $target"

docker_image=$(get_docker_image "$target")

build_windows_target "$target"

if [ "$rmi" = "true" ]; then
rmi_docker_image "$docker_image"
fi
done
target="x86_64-pc-windows-msvc"
pull_docker_image "$target"
build_windows_target "$target"
rmi_docker_image "$target"
fi

if [ "$os" = "linux" ]; then
target_list=(x86_64-unknown-linux-musl aarch64-unknown-linux-musl armv7-unknown-linux-musleabi armv7-unknown-linux-musleabihf armv5te-unknown-linux-musleabi arm-unknown-linux-musleabi arm-unknown-linux-musleabihf i686-unknown-linux-gnu i586-unknown-linux-gnu)
target_list=(
"x86_64-unknown-linux-musl"
"aarch64-unknown-linux-musl"
"armv7-unknown-linux-musleabi"
"armv7-unknown-linux-musleabihf"
"armv5te-unknown-linux-musleabi"
"arm-unknown-linux-musleabi"
"arm-unknown-linux-musleabihf"
"i686-unknown-linux-gnu"
"i586-unknown-linux-gnu"
)

for target in "${target_list[@]}"; do
echo "Building $target"

docker_image=$(get_docker_image "$target")

if [ "$target" = "x86_64-pc-windows-msvc" ]; then
build_windows_target "$target"
else
build_linux_target "$target"
fi

if [ "$rmi" = "true" ]; then
rmi_docker_image "$docker_image"
fi
pull_docker_image "$target"
build_linux_target "$target"
rmi_docker_image "$target"
done
fi

if [ "$os" = "macos" ]; then
if ! which upx &>/dev/null; then
brew install upx
fi
rustup target add x86_64-apple-darwin aarch64-apple-darwin
target_list=(x86_64-apple-darwin aarch64-apple-darwin)
target_list=(
"x86_64-apple-darwin"
"aarch64-apple-darwin"
)
for target in "${target_list[@]}"; do
echo "Building $target"
echo "Adding $target to the build queue"
rustup target add "$target"
build_macos_target "$target"
done
fi
Expand Down
1 change: 0 additions & 1 deletion crates/mitm/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ edition = "2021"
log = "0.4.20"
anyhow = "1.0.75"
thiserror = "1.0.48"
async-trait = "0.1.73"
reqwest = { package = "reqwest-impersonate", version ="0.11.49", default-features = false, features = [
"boring-tls", "impersonate", "stream", "socks"
] }
Expand Down
6 changes: 2 additions & 4 deletions crates/mitm/src/proxy/handler.rs
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
use async_trait::async_trait;
use hyper::{Body, Request, Response};
use std::sync::{Arc, RwLock};
use wildmatch::WildMatch;

use super::mitm::RequestOrResponse;

#[async_trait]
pub trait HttpHandler: Clone + Send + Sync + 'static {
async fn handle_request(&self, req: Request<Body>) -> RequestOrResponse {
fn handle_request(&self, req: Request<Body>) -> RequestOrResponse {
RequestOrResponse::Request(req)
}

async fn handle_response(&self, res: Response<Body>) -> Response<Body> {
fn handle_response(&self, res: Response<Body>) -> Response<Body> {
res
}
}
Expand Down
4 changes: 2 additions & 2 deletions crates/mitm/src/proxy/mitm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ where
};

// Proxy request
let mut req = match self.http_handler.handle_request(req).await {
let mut req = match self.http_handler.handle_request(req) {
RequestOrResponse::Request(req) => req,
RequestOrResponse::Response(res) => return Ok(res),
};
Expand All @@ -116,7 +116,7 @@ where
}
};

let mut res = self.http_handler.handle_response(res).await;
let mut res = self.http_handler.handle_response(res);
let length = res.size_hint().lower();

{
Expand Down
3 changes: 1 addition & 2 deletions crates/openai/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
name = "openai"
version = "0.9.26"
edition = "2021"
rust-version = "1.75.0"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

Expand All @@ -19,11 +20,9 @@ tokio = { version = "1.35.1", features = ["fs", "sync", "signal", "rt-multi-thre
serde_json = "1.0.107"
serde = {version = "1.0.188", features = ["derive"] }
regex = "1.9.5"
async-recursion = "1.0.5"
url = { version = "2.5.0", features = ["serde"] }
base64 = "0.21.4"
rand = "0.8.5"
async-trait = "0.1.73"
typed-builder = "0.18.0"
jsonwebtokens = "1.2.0"
sha2 = "0.10.7"
Expand Down
Loading
Loading