mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-08-06 04:29:52 +00:00
e0745f4bab
1. Overview
This PR adds data plane APIs to easytier-ffi:
TCP Outbound:
- data_plane_tcp_connect
- data_plane_tcp_read
- data_plane_tcp_write
- data_plane_tcp_close
TCP Listener:
- data_plane_tcp_bind
- data_plane_tcp_accept
- data_plane_tcp_listener_close
UDP:
- data_plane_udp_bind
- data_plane_udp_send_to
- data_plane_udp_recv_from
- data_plane_udp_close
2. Key Changes
The main changes are focused on:
- easytier-contrib/easytier-ffi/src/lib.rs: Added FFI interfaces;
made ERROR_MSG thread-safe.
- easytier/src/gateway/socks5.rs: Bridges the data plane to the
existing Socks5 server logic.
- Added EasyTierUdpSocket, mainly wrapping ref-counting and
critical object (e.g., Socks5EntrySet) hold & drop logic,
and exposing common fields (e.g., local_addr).
- Extended Socks5Server functionality to expose TCP and UDP
socket creation interfaces for FFI calls.
- Other files: Mostly pass-through logic.
- Added a relatively large Go usage example.
24 lines
481 B
TOML
24 lines
481 B
TOML
[package]
|
|
name = "easytier-ffi"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
|
|
[lib]
|
|
crate-type = ["cdylib"]
|
|
|
|
[features]
|
|
default = ["ffi-dataplane"]
|
|
ffi-dataplane = ["easytier/ffi-dataplane"]
|
|
|
|
[dependencies]
|
|
easytier = { path = "../../easytier" }
|
|
|
|
once_cell = "1.18.0"
|
|
dashmap = "6.0"
|
|
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1"
|
|
uuid = "1.17.0"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "io-util", "time", "sync", "macros"] }
|
|
tokio-util = "0.7"
|