🚚 change `quic_demo` to `ptth_quic`
parent
099e0fe884
commit
2930213398
|
@ -1241,8 +1241,8 @@ dependencies = [
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"hex",
|
"hex",
|
||||||
"ptth_file_server",
|
"ptth_file_server",
|
||||||
|
"ptth_quic",
|
||||||
"ptth_server",
|
"ptth_server",
|
||||||
"quic_demo",
|
|
||||||
"rand",
|
"rand",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"rusty_ulid",
|
"rusty_ulid",
|
||||||
|
@ -1252,6 +1252,26 @@ dependencies = [
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ptth_quic"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"anyhow",
|
||||||
|
"base64",
|
||||||
|
"ctrlc",
|
||||||
|
"futures-util",
|
||||||
|
"hyper",
|
||||||
|
"quinn",
|
||||||
|
"rand",
|
||||||
|
"rcgen",
|
||||||
|
"reqwest",
|
||||||
|
"rmp-serde",
|
||||||
|
"structopt",
|
||||||
|
"tokio",
|
||||||
|
"tracing",
|
||||||
|
"tracing-subscriber",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ptth_quic_client_gui"
|
name = "ptth_quic_client_gui"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
@ -1259,7 +1279,7 @@ dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"blake3",
|
"blake3",
|
||||||
"fltk",
|
"fltk",
|
||||||
"quic_demo",
|
"ptth_quic",
|
||||||
"quinn",
|
"quinn",
|
||||||
"rand",
|
"rand",
|
||||||
"rand_chacha",
|
"rand_chacha",
|
||||||
|
@ -1379,26 +1399,6 @@ dependencies = [
|
||||||
"unicase",
|
"unicase",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quic_demo"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"anyhow",
|
|
||||||
"base64",
|
|
||||||
"ctrlc",
|
|
||||||
"futures-util",
|
|
||||||
"hyper",
|
|
||||||
"quinn",
|
|
||||||
"rand",
|
|
||||||
"rcgen",
|
|
||||||
"reqwest",
|
|
||||||
"rmp-serde",
|
|
||||||
"structopt",
|
|
||||||
"tokio",
|
|
||||||
"tracing",
|
|
||||||
"tracing-subscriber",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quick-error"
|
name = "quick-error"
|
||||||
version = "2.0.1"
|
version = "2.0.1"
|
||||||
|
|
|
@ -20,7 +20,7 @@ cargo new --bin crates/ptth_server && \
|
||||||
cargo new --bin crates/ptth_file_server_bin && \
|
cargo new --bin crates/ptth_file_server_bin && \
|
||||||
cargo new --bin tools/ptth_tail && \
|
cargo new --bin tools/ptth_tail && \
|
||||||
cargo new --bin crates/debug_proxy && \
|
cargo new --bin crates/debug_proxy && \
|
||||||
cargo new --bin prototypes/quic_demo
|
cargo new --bin crates/ptth_quic
|
||||||
|
|
||||||
# copy over your manifests
|
# copy over your manifests
|
||||||
COPY ./Cargo.lock ./
|
COPY ./Cargo.lock ./
|
||||||
|
@ -28,7 +28,7 @@ COPY ./Cargo.toml ./
|
||||||
COPY ./crates/always_equal/Cargo.toml ./crates/always_equal/
|
COPY ./crates/always_equal/Cargo.toml ./crates/always_equal/
|
||||||
COPY ./crates/ptth_core/Cargo.toml ./crates/ptth_core/
|
COPY ./crates/ptth_core/Cargo.toml ./crates/ptth_core/
|
||||||
COPY ./crates/ptth_relay/Cargo.toml ./crates/ptth_relay/
|
COPY ./crates/ptth_relay/Cargo.toml ./crates/ptth_relay/
|
||||||
COPY ./prototypes/quic_demo/Cargo.toml ./prototypes/quic_demo/
|
COPY ./crates/ptth_quic/Cargo.toml ./crates/ptth_quic/
|
||||||
|
|
||||||
# this build step will cache your dependencies
|
# this build step will cache your dependencies
|
||||||
RUN cargo build --release -p ptth_relay
|
RUN cargo build --release -p ptth_relay
|
||||||
|
@ -39,7 +39,7 @@ src/*.rs \
|
||||||
crates/always_equal/src/*.rs \
|
crates/always_equal/src/*.rs \
|
||||||
crates/ptth_core/src/*.rs \
|
crates/ptth_core/src/*.rs \
|
||||||
crates/ptth_relay/src/*.rs \
|
crates/ptth_relay/src/*.rs \
|
||||||
prototypes/quic_demo/src/*.rs
|
crates/ptth_quic/src/*.rs
|
||||||
|
|
||||||
# Copy source tree
|
# Copy source tree
|
||||||
# Yes, I tried a few variations on the syntax. Dockerfiles are just rough.
|
# Yes, I tried a few variations on the syntax. Dockerfiles are just rough.
|
||||||
|
@ -49,7 +49,7 @@ COPY ./crates/always_equal ./crates/always_equal
|
||||||
COPY ./crates/ptth_core ./crates/ptth_core
|
COPY ./crates/ptth_core ./crates/ptth_core
|
||||||
COPY ./crates/ptth_relay ./crates/ptth_relay
|
COPY ./crates/ptth_relay ./crates/ptth_relay
|
||||||
COPY ./handlebars/ ./handlebars
|
COPY ./handlebars/ ./handlebars
|
||||||
COPY ./prototypes/quic_demo ./prototypes/quic_demo
|
COPY ./crates/ptth_quic ./crates/ptth_quic
|
||||||
|
|
||||||
# Bug in cargo's incremental build logic, triggered by
|
# Bug in cargo's incremental build logic, triggered by
|
||||||
# Docker doing something funny with mtimes? Maybe?
|
# Docker doing something funny with mtimes? Maybe?
|
||||||
|
|
|
@ -18,7 +18,7 @@ futures-util = "0.3.9"
|
||||||
hex = "0.4.3"
|
hex = "0.4.3"
|
||||||
ptth_file_server = { path = "../ptth_file_server_bin" }
|
ptth_file_server = { path = "../ptth_file_server_bin" }
|
||||||
ptth_server = { path = "../ptth_server" }
|
ptth_server = { path = "../ptth_server" }
|
||||||
quic_demo = { path = "../ptth_quic" }
|
ptth_quic = { path = "../ptth_quic" }
|
||||||
rand = "0.8.4"
|
rand = "0.8.4"
|
||||||
rusty_ulid = "0.10.1"
|
rusty_ulid = "0.10.1"
|
||||||
sha2 = "0.9.8"
|
sha2 = "0.9.8"
|
||||||
|
|
|
@ -43,7 +43,7 @@ async fn main () -> anyhow::Result <()> {
|
||||||
shutdown_tx.send (true).expect ("Couldn't forward Ctrl+C signal");
|
shutdown_tx.send (true).expect ("Couldn't forward Ctrl+C signal");
|
||||||
})?;
|
})?;
|
||||||
tracing::trace! ("Set Ctrl+C handler");
|
tracing::trace! ("Set Ctrl+C handler");
|
||||||
quic_demo::executable_end_server::main (args, Some (shutdown_rx)).await?;
|
ptth_quic::executable_end_server::main (args, Some (shutdown_rx)).await?;
|
||||||
|
|
||||||
Ok (())
|
Ok (())
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[package]
|
[package]
|
||||||
name = "quic_demo"
|
name = "ptth_quic"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Trish"]
|
authors = ["Trish"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
|
@ -20,7 +20,7 @@ cargo new --bin crates/ptth_server && \
|
||||||
cargo new --bin crates/ptth_file_server_bin && \
|
cargo new --bin crates/ptth_file_server_bin && \
|
||||||
cargo new --bin tools/ptth_tail && \
|
cargo new --bin tools/ptth_tail && \
|
||||||
cargo new --bin crates/debug_proxy && \
|
cargo new --bin crates/debug_proxy && \
|
||||||
cargo new --bin prototypes/quic_demo
|
cargo new --bin crates/ptth_quic
|
||||||
|
|
||||||
# copy over your manifests
|
# copy over your manifests
|
||||||
COPY ./Cargo.lock ./
|
COPY ./Cargo.lock ./
|
||||||
|
@ -28,10 +28,10 @@ COPY ./Cargo.toml ./
|
||||||
COPY ./crates/always_equal/Cargo.toml ./crates/always_equal/
|
COPY ./crates/always_equal/Cargo.toml ./crates/always_equal/
|
||||||
COPY ./crates/ptth_core/Cargo.toml ./crates/ptth_core/
|
COPY ./crates/ptth_core/Cargo.toml ./crates/ptth_core/
|
||||||
COPY ./crates/ptth_relay/Cargo.toml ./crates/ptth_relay/
|
COPY ./crates/ptth_relay/Cargo.toml ./crates/ptth_relay/
|
||||||
COPY ./prototypes/quic_demo/Cargo.toml ./prototypes/quic_demo/
|
COPY ./crates/ptth_quic/Cargo.toml ./crates/ptth_quic/
|
||||||
|
|
||||||
# this build step will cache your dependencies
|
# this build step will cache your dependencies
|
||||||
RUN cargo build --release -p quic_demo
|
RUN cargo build --release -p ptth_quic
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
rm \
|
rm \
|
||||||
|
@ -39,7 +39,7 @@ src/*.rs \
|
||||||
crates/always_equal/src/*.rs \
|
crates/always_equal/src/*.rs \
|
||||||
crates/ptth_core/src/*.rs \
|
crates/ptth_core/src/*.rs \
|
||||||
crates/ptth_relay/src/*.rs \
|
crates/ptth_relay/src/*.rs \
|
||||||
prototypes/quic_demo/src/*.rs
|
crates/ptth_quic/src/*.rs
|
||||||
|
|
||||||
# Copy source tree
|
# Copy source tree
|
||||||
# Yes, I tried a few variations on the syntax. Dockerfiles are just rough.
|
# Yes, I tried a few variations on the syntax. Dockerfiles are just rough.
|
||||||
|
@ -49,7 +49,7 @@ COPY ./crates/always_equal ./crates/always_equal
|
||||||
COPY ./crates/ptth_core ./crates/ptth_core
|
COPY ./crates/ptth_core ./crates/ptth_core
|
||||||
COPY ./crates/ptth_relay ./crates/ptth_relay
|
COPY ./crates/ptth_relay ./crates/ptth_relay
|
||||||
COPY ./handlebars/ ./handlebars
|
COPY ./handlebars/ ./handlebars
|
||||||
COPY ./prototypes/quic_demo ./prototypes/quic_demo
|
COPY ./crates/ptth_quic ./crates/ptth_quic
|
||||||
|
|
||||||
# Bug in cargo's incremental build logic, triggered by
|
# Bug in cargo's incremental build logic, triggered by
|
||||||
# Docker doing something funny with mtimes? Maybe?
|
# Docker doing something funny with mtimes? Maybe?
|
||||||
|
@ -58,8 +58,8 @@ RUN touch crates/ptth_core/src/lib.rs
|
||||||
# build for release
|
# build for release
|
||||||
# gate only on ptth_relay tests for now
|
# gate only on ptth_relay tests for now
|
||||||
RUN \
|
RUN \
|
||||||
cargo build --release -p quic_demo --bin quic_demo_relay_server && \
|
cargo build --release -p ptth_quic --bin ptth_quic_relay_server && \
|
||||||
cargo test --release -p quic_demo --bin quic_demo_relay_server
|
cargo test --release -p ptth_quic --bin ptth_quic_relay_server
|
||||||
|
|
||||||
# debian:buster-slim
|
# debian:buster-slim
|
||||||
FROM debian@sha256:13f0764262a064b2dd9f8a828bbaab29bdb1a1a0ac6adc8610a0a5f37e514955
|
FROM debian@sha256:13f0764262a064b2dd9f8a828bbaab29bdb1a1a0ac6adc8610a0a5f37e514955
|
||||||
|
@ -73,11 +73,11 @@ RUN addgroup --gid 10001 ptth_user && adduser --system --uid 10000 --gid 10001 p
|
||||||
USER ptth_user
|
USER ptth_user
|
||||||
WORKDIR /home/ptth_user
|
WORKDIR /home/ptth_user
|
||||||
|
|
||||||
COPY --from=build /ptth/target/release/quic_demo_relay_server ./
|
COPY --from=build /ptth/target/release/ptth_quic_relay_server ./
|
||||||
|
|
||||||
ARG git_version
|
ARG git_version
|
||||||
RUN \
|
RUN \
|
||||||
echo -n "$git_version" > ./git_version.txt && \
|
echo -n "$git_version" > ./git_version.txt && \
|
||||||
ln -s quic_demo_relay_server app
|
ln -s ptth_quic_relay_server app
|
||||||
|
|
||||||
CMD ["/usr/bin/tini", "--", "./quic_demo_relay_server"]
|
CMD ["/usr/bin/tini", "--", "./ptth_quic_relay_server"]
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
There are 5 processes, so you'll need 5 terminal windows or screen / tmux
|
There are 5 processes, so you'll need 5 terminal windows or screen / tmux
|
||||||
sessions. Run the processes in this order:
|
sessions. Run the processes in this order:
|
||||||
|
|
||||||
1. QUIC relay server: `RUST_LOG=quic_demo_relay_server=debug cargo run --bin quic_demo_relay_server`
|
1. QUIC relay server: `RUST_LOG=ptth_quic_relay_server=debug cargo run --bin ptth_quic_relay_server`
|
||||||
2. Server-side proxy: `RUST_LOG=quic_demo_end_server=debug cargo run --bin quic_demo_end_server`
|
2. Server-side proxy: `RUST_LOG=ptth_quic_end_server=debug cargo run --bin ptth_quic_end_server`
|
||||||
3. Client-side proxy: `RUST_LOG=quic_demo_client cargo run --bin quic_demo_client`
|
3. Client-side proxy: `RUST_LOG=ptth_quic_client cargo run --bin ptth_quic_client`
|
||||||
4. TCP end server: `nc -l -p 30382`
|
4. TCP end server: `nc -l -p 30382`
|
||||||
5. TCP end client: `nc 127.0.0.1 30381`
|
5. TCP end client: `nc 127.0.0.1 30381`
|
||||||
|
|
||||||
|
|
|
@ -9,12 +9,12 @@ DOCKER_TAG="ptth_quic:latest"
|
||||||
|
|
||||||
mkdir -p app_packages
|
mkdir -p app_packages
|
||||||
|
|
||||||
git archive --format=tar "$GIT_COMMIT" | docker build -f prototypes/quic_demo/Dockerfile -t "$DOCKER_TAG" --build-arg "git_version=$GIT_COMMIT" -
|
git archive --format=tar "$GIT_COMMIT" | docker build -f crates/ptth_quic/Dockerfile -t "$DOCKER_TAG" --build-arg "git_version=$GIT_COMMIT" -
|
||||||
|
|
||||||
docker run --rm "$DOCKER_TAG" \
|
docker run --rm "$DOCKER_TAG" \
|
||||||
tar -c \
|
tar -c \
|
||||||
app \
|
app \
|
||||||
quic_demo_relay_server \
|
ptth_quic_relay_server \
|
||||||
| gzip > "app_packages/ptth_quic_relay_$GIT_COMMIT_SHORT.tar.gz"
|
| gzip > "app_packages/ptth_quic_relay_$GIT_COMMIT_SHORT.tar.gz"
|
||||||
|
|
||||||
# sudo docker build -f app_package_Dockerfile -t ptth_app_host:latest .
|
# sudo docker build -f app_package_Dockerfile -t ptth_app_host:latest .
|
||||||
|
|
|
@ -4,7 +4,7 @@ use tokio::{
|
||||||
sync::watch,
|
sync::watch,
|
||||||
};
|
};
|
||||||
|
|
||||||
use quic_demo::{
|
use ptth_quic::{
|
||||||
client_proxy::{
|
client_proxy::{
|
||||||
ForwardingParams,
|
ForwardingParams,
|
||||||
forward_port,
|
forward_port,
|
|
@ -4,7 +4,7 @@ use std::{
|
||||||
|
|
||||||
use tokio::sync::watch;
|
use tokio::sync::watch;
|
||||||
|
|
||||||
use quic_demo::prelude::*;
|
use ptth_quic::prelude::*;
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main () -> anyhow::Result <()> {
|
async fn main () -> anyhow::Result <()> {
|
||||||
|
@ -19,5 +19,5 @@ async fn main () -> anyhow::Result <()> {
|
||||||
})?;
|
})?;
|
||||||
trace! ("Set Ctrl+C handler");
|
trace! ("Set Ctrl+C handler");
|
||||||
|
|
||||||
quic_demo::executable_end_server::main (&args, Some (shutdown_rx)).await
|
ptth_quic::executable_end_server::main (&args, Some (shutdown_rx)).await
|
||||||
}
|
}
|
|
@ -15,7 +15,7 @@ use tokio::{
|
||||||
sync::watch,
|
sync::watch,
|
||||||
};
|
};
|
||||||
|
|
||||||
use quic_demo::prelude::*;
|
use ptth_quic::prelude::*;
|
||||||
use protocol::PeerId;
|
use protocol::PeerId;
|
||||||
|
|
||||||
#[derive (Debug, StructOpt)]
|
#[derive (Debug, StructOpt)]
|
|
@ -11,7 +11,7 @@ license = "AGPL-3.0"
|
||||||
anyhow = "1.0.38"
|
anyhow = "1.0.38"
|
||||||
blake3 = "1.0.0"
|
blake3 = "1.0.0"
|
||||||
fltk = "1.2.8"
|
fltk = "1.2.8"
|
||||||
quic_demo = { path = "../ptth_quic" }
|
ptth_quic = { path = "../ptth_quic" }
|
||||||
quinn = "0.7.2"
|
quinn = "0.7.2"
|
||||||
rand = "0.8.4"
|
rand = "0.8.4"
|
||||||
rand_chacha = "0.3.1"
|
rand_chacha = "0.3.1"
|
||||||
|
|
|
@ -19,7 +19,7 @@ use rand::{
|
||||||
use structopt::StructOpt;
|
use structopt::StructOpt;
|
||||||
use tokio::runtime::Runtime;
|
use tokio::runtime::Runtime;
|
||||||
|
|
||||||
use quic_demo::{
|
use ptth_quic::{
|
||||||
client_proxy::*,
|
client_proxy::*,
|
||||||
prelude::*,
|
prelude::*,
|
||||||
protocol::PeerId,
|
protocol::PeerId,
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
## Initial setup
|
## Initial setup
|
||||||
|
|
||||||
- Open 3 terminals in `prototypes/quic_demo`
|
- Open 3 terminals in `crates/ptth_quic`
|
||||||
- Use `export RUST_LOG=quic_demo_relay_server=debug` to enable debug logging
|
- Use `export RUST_LOG=ptth_quic_relay_server=debug` to enable debug logging
|
||||||
for the terminal that will run the relay server (P3)
|
for the terminal that will run the relay server (P3)
|
||||||
- Use `export RUST_LOG=quic_demo_end_server=debug` for the terminal that
|
- Use `export RUST_LOG=ptth_quic_end_server=debug` for the terminal that
|
||||||
will run the end server (P4)
|
will run the end server (P4)
|
||||||
- Use `export RUST_LOG=quic_demo_client=debug` for the terminal that
|
- Use `export RUST_LOG=ptth_quic_client=debug` for the terminal that
|
||||||
will run the client (P2)
|
will run the client (P2)
|
||||||
|
|
||||||
When the relay server is running, use curl to get the list of connected
|
When the relay server is running, use curl to get the list of connected
|
||||||
|
@ -15,10 +15,10 @@ end servers: `curl 127.0.0.1:4004`
|
||||||
|
|
||||||
## Test loop - Happy path
|
## Test loop - Happy path
|
||||||
|
|
||||||
- Start a relay `cargo run --bin quic_demo_relay_server`
|
- Start a relay `cargo run --bin ptth_quic_relay_server`
|
||||||
- Verify that the relay has no end servers connected
|
- Verify that the relay has no end servers connected
|
||||||
- Start an end server `cargo run --bin quic_demo_end_server -- --debug-echo`
|
- Start an end server `cargo run --bin ptth_quic_end_server -- --debug-echo`
|
||||||
- Verify that the end server connected
|
- Verify that the end server connected
|
||||||
- Start a client `cargo run --bin quic_demo_client`
|
- Start a client `cargo run --bin ptth_quic_client`
|
||||||
- Connect to the client and verify that the debug echo server is running
|
- Connect to the client and verify that the debug echo server is running
|
||||||
`nc 127.0.0.1 30381`
|
`nc 127.0.0.1 30381`
|
||||||
|
|
Loading…
Reference in New Issue