1 unstable release
0.1.0 | Nov 7, 2024 |
---|
#212 in HTTP server
285KB
269 lines
Hafnium
Hafnium is reverse proxy, it use to expose local port over nat (ex. CGNAT)
How it work
Features
Core Features To-Do
Key Management
- Implement
hf genkey
command- Generate private/public key pairs
- Store keys securely
- Export public key in shareable format
Server-side Features
-
Implement server core functionality
- Create TCP/UDP server listener
- Handle client connections (including forward of data)
- Implement public key authentication
-
Implement port management commands
-
hf allow <port> [tcp/udp]
-
hf disallow <port> [tcp/udp]
- Default allow-all ports mechanism
-
-
Implement connection management
-
hf list peers
-
hf list ports
-
hf disconnect [peer_public_key]
-
-
Configuration system
-
hf config get <key>
-
hf config set <key> <value>
- Implement persistent configuration storage
-
Client-side Features
-
Implement client core functionality
-
hf connect <ip_address>:<port> <public_key>
- Handle connection authentication
- Maintain persistent connection
-
-
Port forwarding features
-
hf open <port> [tcp/udp]
-
hf close <port> [tcp/udp]
- Port forwarding logic implementation
-
-
Client utilities
-
hf list peers
-
hf list ports
-
hf disconnect
-
Technical Infrastructure
- Set up project structure
- Implement logging system
- Error handling
- Connection security
- Network protocol design
- Documentation
- Installation guide
- Usage documentation
- API documentation
License
the code license is AGPL-3.0
read more.
Dependencies
~14–23MB
~431K SLoC