Skip to content

Commit 49d23d1

Browse files
authored
chore: transfer ownership references from MitulShah1 to ferro-labs (#99)
* chore: transfer ownership references from MitulShah1 to ferro-labs - Update all GitHub URLs to github.com/ferro-labs/ferrotunnel - Update GHCR image references to ghcr.io/ferro-labs/ferrotunnel - Update homebrew tap references to ferro-labs/ferrotunnel - Affects: Cargo.toml, README.md, CHANGELOG.md, SECURITY.md, scripts/publish.sh, and all sub-crate READMEs * chore: bump all crates to v1.0.4 ### Changes - Bump workspace version from 1.0.3 to 1.0.4 across all crates - Add CHANGELOG entry for v1.0.4 with fixes for issues #76, #77, #78 Fixes #76 - Reduce boolean fields in ClientFeatureArgs struct Fixes #77 - Remove unnecessary_literal_bound allow directives from plugin modules Fixes #78 - Handle integer truncation safely in tunnel client/server * chore: bump all crates to v1.0.4 and update changelog - Bump workspace version to 1.0.4 across all crates - Add ownership transfer to ferro-labs in CHANGELOG - Document fixes for #76, #77, #78 in CHANGELOG - Fix duplicate footer links in CHANGELOG * fix: resolve result_large_err clippy error and add Discord badge - Extract accept_hdr_async callback into named fn with #[allow(clippy::result_large_err)] to fix CI failure in ferrotunnel-tests (websocket_test.rs) - Add Discord badge to README linking to https://discord.gg/yCAeYvJeDV * style: fix rustfmt formatting in websocket_test.rs Break long Result return type and fix .await chain indentation to match rustfmt output. * fix: move ws hdr_callback to module level to fix items_after_statements lint Extracted ws_subprotocol_hdr_callback to module level to resolve: - clippy::items_after_statements (fn defined after statements in block) - clippy::unnecessary_wraps (suppressed — return type required by trait)
1 parent 1041534 commit 49d23d1

17 files changed

Lines changed: 79 additions & 50 deletions

File tree

CHANGELOG.md

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.0.4] - 2026-03-09
11+
12+
### Changed
13+
14+
#### Project Ownership
15+
- **Repository transfer**: Project ownership transferred from MitulShah1 to the [ferro-labs](https://github.com/ferro-labs) organization. Repository is now at <https://github.com/ferro-labs/ferrotunnel>
16+
- **Updated all references**: GitHub URLs, GHCR image paths (`ghcr.io/ferro-labs/ferrotunnel`), and Homebrew tap (`brew tap ferro-labs/ferrotunnel`) updated throughout the codebase
17+
18+
#### Code Quality
19+
- **Refactor `ClientFeatureArgs` struct**: Replaced excessive boolean fields with nested configuration structs (`DashboardConfig`, `TlsConfig`, `TelemetryConfig`) using `#[command(flatten)]`, removing the `#[allow(clippy::struct_excessive_bools)]` suppression ([#76](https://github.com/ferro-labs/ferrotunnel/issues/76))
20+
- **Remove `unnecessary_literal_bound` allow directives**: Cleaned up redundant `#[allow(clippy::unnecessary_literal_bound)]` suppressions across plugin modules (`auth.rs`, `rate_limit.rs`, `logger.rs`, `circuit_breaker.rs`) ([#77](https://github.com/ferro-labs/ferrotunnel/issues/77))
21+
22+
### Fixed
23+
24+
#### Safety
25+
- **Safe integer truncation in timestamp conversions**: Replaced `as_millis() as u64` casts in tunnel client and server with `.min(u64::MAX as u128) as u64`, removing `#[allow(clippy::cast_possible_truncation)]` suppressions and making truncation behaviour explicit ([#78](https://github.com/ferro-labs/ferrotunnel/issues/78))
26+
1027
## [1.0.3] - 2026-02-16
1128

1229
### Added
@@ -63,7 +80,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6380
### Added
6481

6582
#### Installation
66-
- **Homebrew Formula**: Introduce `brew install ferrotunnel` command for macOS users via [MitulShah1/homebrew-ferrotunnel](https://github.com/MitulShah1/homebrew-ferrotunnel) tap
83+
- **Homebrew Formula**: Introduce `brew install ferrotunnel` command for macOS users via [ferro-labs/homebrew-ferrotunnel](https://github.com/ferro-labs/homebrew-ferrotunnel) tap
6784

6885
#### Tunnel Routing
6986
- **`--tunnel-id` CLI flag**: New `--tunnel-id` option for `ferrotunnel client` to set the tunnel ID used for HTTP Host-header routing (`FERROTUNNEL_TUNNEL_ID` env var supported)
@@ -174,7 +191,9 @@ FerroTunnel v1.0.0 is the first stable release.
174191
| `ferrotunnel-observability` | Metrics, tracing, and dashboard |
175192
| `ferrotunnel-common` | Shared types and errors |
176193

177-
[Unreleased]: https://github.com/MitulShah1/ferrotunnel/compare/v1.0.2...HEAD
178-
[1.0.2]: https://github.com/MitulShah1/ferrotunnel/releases/tag/v1.0.2
179-
[1.0.1]: https://github.com/MitulShah1/ferrotunnel/releases/tag/v1.0.1
180-
[1.0.0]: https://github.com/MitulShah1/ferrotunnel/releases/tag/v1.0.0
194+
[Unreleased]: https://github.com/ferro-labs/ferrotunnel/compare/v1.0.4...HEAD
195+
[1.0.4]: https://github.com/ferro-labs/ferrotunnel/compare/v1.0.3...v1.0.4
196+
[1.0.3]: https://github.com/ferro-labs/ferrotunnel/compare/v1.0.2...v1.0.3
197+
[1.0.2]: https://github.com/ferro-labs/ferrotunnel/releases/tag/v1.0.2
198+
[1.0.1]: https://github.com/ferro-labs/ferrotunnel/releases/tag/v1.0.1
199+
[1.0.0]: https://github.com/ferro-labs/ferrotunnel/releases/tag/v1.0.0

Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ members = [
1919
]
2020

2121
[workspace.package]
22-
version = "1.0.3"
22+
version = "1.0.4"
2323
edition = "2021"
2424
rust-version = "1.90"
2525
authors = ["Mitul Shah <shahmitul005@gmail.com>"]
2626
license = "MIT OR Apache-2.0"
27-
repository = "https://github.com/MitulShah1/ferrotunnel"
28-
homepage = "https://github.com/MitulShah1/ferrotunnel"
27+
repository = "https://github.com/ferro-labs/ferrotunnel"
28+
homepage = "https://github.com/ferro-labs/ferrotunnel"
2929
description = "HTTP ingress and proxy for FerroTunnel"
3030
keywords = ["tunnel", "http", "proxy", "ingress"]
3131
categories = ["network-programming", "web-programming"]
@@ -54,7 +54,7 @@ tokio = { version = "1", features = ["full"] }
5454

5555
# Logging
5656
tracing = "0.1"
57-
ferrotunnel-observability = { version = "1.0.3", path = "ferrotunnel-observability" }
57+
ferrotunnel-observability = { version = "1.0.4", path = "ferrotunnel-observability" }
5858

5959
# High-performance allocator
6060
mimalloc = { version = "0.1", default-features = false }

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# FerroTunnel 🦀
22

3-
[![CI](https://github.com/MitulShah1/ferrotunnel/workflows/CI/badge.svg)](https://github.com/MitulShah1/ferrotunnel/actions/workflows/ci.yml)
3+
[![CI](https://github.com/ferro-labs/ferrotunnel/workflows/CI/badge.svg)](https://github.com/ferro-labs/ferrotunnel/actions/workflows/ci.yml)
44
[![Crates.io](https://img.shields.io/crates/v/ferrotunnel)](https://crates.io/crates/ferrotunnel)
55
[![Documentation](https://docs.rs/ferrotunnel/badge.svg)](https://docs.rs/ferrotunnel)
66
[![License](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg)](LICENSE)
77
[![Rust Version](https://img.shields.io/badge/rust-1.90%2B-orange.svg)](https://www.rust-lang.org)
8+
[![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.gg/yCAeYvJeDV)
89

910
**High-performance reverse tunnel you can embed in your Rust applications.**
1011

@@ -194,7 +195,7 @@ See [ferrotunnel-cli/README.md](ferrotunnel-cli/README.md) for all options.
194195

195196
### Pre-built Binaries
196197

197-
Download from [GitHub Releases](https://github.com/MitulShah1/ferrotunnel/releases).
198+
Download from [GitHub Releases](https://github.com/ferro-labs/ferrotunnel/releases).
198199

199200
### From Source
200201

@@ -205,7 +206,7 @@ cargo install ferrotunnel-cli
205206
### macOS (Homebrew)
206207

207208
```bash
208-
brew tap MitulShah1/ferrotunnel
209+
brew tap ferro-labs/ferrotunnel
209210
brew install ferrotunnel
210211
```
211212

@@ -217,10 +218,10 @@ You can pull the official image from GitHub Container Registry:
217218

218219
```bash
219220
# Pull the latest image
220-
docker pull ghcr.io/mitulshah1/ferrotunnel:latest
221+
docker pull ghcr.io/ferro-labs/ferrotunnel:latest
221222

222223
# Run as a server
223-
docker run -p 7835:7835 -p 8080:8080 ghcr.io/mitulshah1/ferrotunnel:latest server --token secret
224+
docker run -p 7835:7835 -p 8080:8080 ghcr.io/ferro-labs/ferrotunnel:latest server --token secret
224225
```
225226

226227
#### Using Docker Compose

SECURITY.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Instead, please report security vulnerabilities by email to:
2222

2323
Or, if you prefer, you can use GitHub's private vulnerability reporting feature:
2424

25-
1. Go to the [Security tab](https://github.com/MitulShah1/ferrotunnel/security)
25+
1. Go to the [Security tab](https://github.com/ferro-labs/ferrotunnel/security)
2626
2. Click "Report a vulnerability"
2727
3. Fill in the details
2828

@@ -67,9 +67,9 @@ The project team is committed to transparency in the security issue disclosure p
6767

6868
Security advisories will be published through:
6969

70-
1. **GitHub Security Advisories**: [FerroTunnel Security Advisories](https://github.com/MitulShah1/ferrotunnel/security/advisories)
70+
1. **GitHub Security Advisories**: [FerroTunnel Security Advisories](https://github.com/ferro-labs/ferrotunnel/security/advisories)
7171
2. **RustSec Advisory Database**: Reported via [`cargo-audit`](https://github.com/RustSec/advisory-db)
72-
3. **GitHub Releases**: Security fixes will be documented in [release notes](https://github.com/MitulShah1/ferrotunnel/releases)
72+
3. **GitHub Releases**: Security fixes will be documented in [release notes](https://github.com/ferro-labs/ferrotunnel/releases)
7373
4. **CHANGELOG.md**: All security-related changes will be clearly marked
7474

7575
## Response Timeline

ferrotunnel-cli/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ doc = false
1717

1818
[dependencies]
1919
# Core functionality
20-
ferrotunnel-core = { version = "1.0.3", path = "../ferrotunnel-core", features = [
20+
ferrotunnel-core = { version = "1.0.4", path = "../ferrotunnel-core", features = [
2121
"metrics",
2222
] }
23-
ferrotunnel-http = { version = "1.0.3", path = "../ferrotunnel-http" }
24-
ferrotunnel-protocol = { version = "1.0.3", path = "../ferrotunnel-protocol" }
25-
ferrotunnel-plugin = { version = "1.0.3", path = "../ferrotunnel-plugin" }
23+
ferrotunnel-http = { version = "1.0.4", path = "../ferrotunnel-http" }
24+
ferrotunnel-protocol = { version = "1.0.4", path = "../ferrotunnel-protocol" }
25+
ferrotunnel-plugin = { version = "1.0.4", path = "../ferrotunnel-plugin" }
2626
ferrotunnel-observability = { workspace = true, features = [
2727
"dashboard",
2828
"axum",

ferrotunnel-cli/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[![Crates.io](https://img.shields.io/crates/v/ferrotunnel-cli)](https://crates.io/crates/ferrotunnel-cli)
44

5-
Unified CLI for [FerroTunnel](https://github.com/MitulShah1/ferrotunnel) - a reverse tunnel system in Rust.
5+
Unified CLI for [FerroTunnel](https://github.com/ferro-labs/ferrotunnel) - a reverse tunnel system in Rust.
66

77
## Installation
88

ferrotunnel-common/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[![Crates.io](https://img.shields.io/crates/v/ferrotunnel-common)](https://crates.io/crates/ferrotunnel-common)
44
[![Documentation](https://docs.rs/ferrotunnel-common/badge.svg)](https://docs.rs/ferrotunnel-common)
55

6-
Shared types and error handling for [FerroTunnel](https://github.com/MitulShah1/ferrotunnel).
6+
Shared types and error handling for [FerroTunnel](https://github.com/ferro-labs/ferrotunnel).
77

88
## Overview
99

ferrotunnel-core/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ keywords = ["tunnel", "networking", "async", "core"]
1212
categories = ["network-programming", "asynchronous"]
1313

1414
[dependencies]
15-
ferrotunnel-common = { version = "1.0.3", path = "../ferrotunnel-common" }
16-
ferrotunnel-protocol = { version = "1.0.3", path = "../ferrotunnel-protocol" }
15+
ferrotunnel-common = { version = "1.0.4", path = "../ferrotunnel-common" }
16+
ferrotunnel-protocol = { version = "1.0.4", path = "../ferrotunnel-protocol" }
1717

1818
tokio = { workspace = true }
1919
tokio-util = { workspace = true }
@@ -51,7 +51,7 @@ kanal = "0.1"
5151
crossbeam-queue = "0.3"
5252

5353
# Optional metrics (decode/encode latency, queue depth)
54-
ferrotunnel-observability = { version = "1.0.3", path = "../ferrotunnel-observability", optional = true }
54+
ferrotunnel-observability = { version = "1.0.4", path = "../ferrotunnel-observability", optional = true }
5555

5656
[features]
5757
default = []

ferrotunnel-core/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[![Crates.io](https://img.shields.io/crates/v/ferrotunnel-core)](https://crates.io/crates/ferrotunnel-core)
44
[![Documentation](https://docs.rs/ferrotunnel-core/badge.svg)](https://docs.rs/ferrotunnel-core)
55

6-
Core tunnel implementation for [FerroTunnel](https://github.com/MitulShah1/ferrotunnel).
6+
Core tunnel implementation for [FerroTunnel](https://github.com/ferro-labs/ferrotunnel).
77

88
## Overview
99

ferrotunnel-http/Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ categories = ["network-programming", "web-programming"]
1212
description = "HTTP ingress and proxy implementation for FerroTunnel"
1313

1414
[dependencies]
15-
ferrotunnel-core = { version = "1.0.3", path = "../ferrotunnel-core" }
16-
ferrotunnel-protocol = { version = "1.0.3", path = "../ferrotunnel-protocol" }
17-
ferrotunnel-plugin = { version = "1.0.3", path = "../ferrotunnel-plugin" }
18-
ferrotunnel-common = { version = "1.0.3", path = "../ferrotunnel-common" }
15+
ferrotunnel-core = { version = "1.0.4", path = "../ferrotunnel-core" }
16+
ferrotunnel-protocol = { version = "1.0.4", path = "../ferrotunnel-protocol" }
17+
ferrotunnel-plugin = { version = "1.0.4", path = "../ferrotunnel-plugin" }
18+
ferrotunnel-common = { version = "1.0.4", path = "../ferrotunnel-common" }
1919
tokio = { workspace = true }
2020
hyper = { version = "1", features = ["full", "http2"] }
2121
http-body-util = "0.1"
@@ -27,7 +27,7 @@ futures = "0.3"
2727
tower = { version = "0.5", features = ["full"] }
2828
tower-service = "0.3"
2929
thiserror = { workspace = true }
30-
ferrotunnel-observability = { version = "1.0.3", path = "../ferrotunnel-observability", optional = true }
30+
ferrotunnel-observability = { version = "1.0.4", path = "../ferrotunnel-observability", optional = true }
3131

3232
[features]
3333
metrics = ["dep:ferrotunnel-observability"]

0 commit comments

Comments
 (0)