Skip to main content

EasyTier-PyO3

License: LGPL-3.0

使用 PyO3 编写的 EasyTier (开源 mesh P2P VPN) Python 绑定库。

可以在 Python 中直接创建、启动、管理 EasyTier 节点,查询对端/路由/指标快照, 管理接入凭证,以及订阅节点事件。

本项目以 LGPL-3.0 发布(与 easytier 一致),详见 LICENSENOTICE

from easytier_pyo3 import Node

node = Node({
    "instance_name": "my-node",
    "network_identity": {"network_name": "net1", "network_secret": "secret"},
    "ipv4": "10.144.144.1/24",
    "listeners": ["tcp://0.0.0.0:11010"],
})
node.start()
print(node.state())        # Running
print(node.peer_id())
node.stop()

目录


安装与构建

直接安装:

pip install easytier-pyo3

源码构建 / 本地开发(环境要求、支持的平台架构、三种构建方式、构建 FAQ 等) 见 构建指南。CI 会为每个平台自动构建 Python 3.11 / 3.12 / 3.13 的 wheel 并运行自测。


快速开始

最小示例(两台机器组网)

节点 A:

from easytier_pyo3 import Node

node_a = Node({
    "instance_name": "node-a",
    "network_identity": {"network_name": "my-net", "network_secret": "topsecret"},
    "ipv4": "10.144.144.1/24",
    "listeners": ["tcp://0.0.0.0:11010"],   # 监听端口,供对端连接
})
node_a.start()

节点 B:

from easytier_pyo3 import Node

node_b = Node({
    "instance_name": "node-b",
    "network_identity": {"network_name": "my-net", "network_secret": "topsecret"},
    "ipv4": "10.144.144.2/24",
    "peer": [{"uri": "tcp://<node-a-ip>:11010"}],  # 对端地址
})
node_b.start()

同一台机器上测试时,可让节点 B 显式连节点 A 的 127.0.0.1:11010。 两个节点 network_name / network_secret 必须一致。

不创建 TUN 设备(无管理员权限测试)

Windows 上创建 TUN 设备需要管理员权限;仅做连通性/对端发现测试时可关闭。 注意 no_tun 模式下必须同时设置 bind_device = false,否则客户端 socket 尝试绑定到虚拟 IP 会报 WSAEADDRNOTAVAIL(10049):

node = Node({
    "network_identity": {"network_name": "test", "network_secret": "test"},
    "flags": {"no_tun": True, "bind_device": False},
})

运行时手动连接对端

node.add_connector("tcp://10.0.0.5:11010")
node.remove_connector("tcp://10.0.0.5:11010")

端口转发(像 CLI 一样把虚拟 IP 端口绑定到本地)

节点运行中用 apply_config 动态添加/覆盖/清空端口转发,格式与 Node() 配置一致:

node = Node({
    "network_identity": {"network_name": "net1", "network_secret": "secret"},
    "ipv4": "10.144.144.1/24",
})

# 运行时添加:本地 8080 → 对端虚拟 IP 10.144.144.2 的 80 端口
node.apply_config({
    "port_forward": [
        {"bind_addr": "127.0.0.1:8080", "dst_addr": "10.144.144.2:80", "proto": "tcp"},
    ],
})

# 全量覆盖(原规则清空后生效新规则)
node.apply_config({
    "port_forward": [
        {"bind_addr": "0.0.0.0:9090", "dst_addr": "10.144.144.3:3306", "proto": "tcp"},
    ],
})

# 清空全部转发
node.apply_config({"port_forward": []})

proto 仅支持 tcp/udp(其它值抛 ValueError,与 CLI 校验一致)。 apply_config 也支持覆盖 routes / exit_nodes / proxy_network 等运行时字段, 详见 API 文档


配置说明

Node() 接受 TOML 字符串Python dict(dict 中的 None 值会被忽略, 等价于不配置该字段)。

配置字段与 easytier-core 的配置文件一致(缺省值 = 不配置,行为见"默认值"列)。 "apply_config 覆盖"列标注该字段能否用 apply_config() 在节点运行中动态修改( = 可覆盖, = 启动期配置 / 不可运行时修改):

字段 类型 默认值 apply_config 覆盖 说明
instance_name str "default" 节点名称
instance_id str(UUID) 自动生成随机 UUID v4 指定节点 ID(一般省略)
hostname str 不设置(空) 节点主机名(等价 CLI --hostname;自动过滤控制字符、截断前 32 字符)
netns str 未配置 网络命名空间(仅 Linux)
ipv4 str 未分配 虚拟 IPv4 地址,如 10.144.144.1/24(写成 /32 会自动按 /24 处理)
ipv6 str 未分配 虚拟 IPv6 地址,如 fd00::1/64
ipv6_public_addr_provider bool false 作为 IPv6 公网地址提供者
ipv6_public_addr_auto bool false 自动获取公网 IPv6 前缀
ipv6_public_addr_prefix str 未配置 IPv6 公网前缀,如 2001:db8:100::/64
dhcp bool false 是否启用 DHCP 获取 IPv4
network_identity dict {"network_name": "default", "network_secret": ""} 网络身份
listeners list[str] 空(不监听) 监听地址,如 tcp://0.0.0.0:11010
mapped_listeners list[str] 端口映射后的公网地址
exit_nodes list[str] 出口节点 IP 列表
peer list[dict] 手动对端,{"uri": str, "peer_public_key": str?}(运行时连接请用 add_connector()/remove_connector()
proxy_network list[dict] 代理网段 {"cidr": str, "allow": list[str]?}
routes list[str] 路由网段列表
socks5_proxy str 不启用 SOCKS5 代理地址
port_forward list[dict] 端口转发配置
vpn_portal_config dict 不启用 VPN Portal 配置(WireGuard 客户端接入)
secure_mode dict 不启用 安全模式(私钥/公钥)配置
acl dict 未配置(放行所有) ACL 规则
tcp_whitelist / udp_whitelist list[str] ACL 端口白名单
stun_servers / tcp_stun_servers / stun_servers_v6 list[str] 内置默认服务器(见下) 自定义 STUN 服务器
credential_file str 未配置 凭证文件路径
flags dict 全部取默认值(见下) 部分 运行时标志(仅 flags.disable_relay_data 可用 apply_config 覆盖,其余见下)

apply_config 只覆盖配置中显式出现的字段,未出现的字段保持当前状态不变; 集合类字段(port_forward/routes/exit_nodes/proxy_network/mapped_listeners/ ACL 白名单)为全量覆盖语义。peer(手动对端)不通过 apply_config 管理, 运行时连接请用 add_connector() / remove_connector() / clear_connectors()

flags 字段与默认值

flags 里未配置的字段一律取下表默认值(源码 gen_default_flags(), 见 easytier-core/src/config/toml.rs):

字段 默认值 说明
default_protocol "tcp" 默认传输协议
dev_name "" TUN 设备名
enable_encryption true 启用加密
enable_ipv6 true 启用 IPv6
mtu 1380 MTU
latency_first false 优先选择低延迟链路
enable_exit_node false 作为出口节点
proxy_forward_by_system false 系统级代理转发
no_tun false 不创建 TUN 设备
use_smoltcp false 使用用户态 smoltcp 协议栈
relay_network_whitelist "*" 允许的中继网络白名单
disable_p2p false 禁用 P2P 直连
p2p_only false 仅使用 P2P
lazy_p2p false 懒 P2P(先走中继,延迟高再打洞)
relay_all_peer_rpc false 中继所有对端 RPC
disable_tcp_hole_punching false 禁用 TCP 打洞
disable_udp_hole_punching false 禁用 UDP 打洞
disable_sym_hole_punching false 禁用对称型 NAT 打洞
disable_upnp false 禁用 UPnP 端口映射
multi_thread true 多线程模式
multi_thread_count 2 多线程线程数
data_compress_algo 无压缩 数据压缩算法(如 zstd
bind_device true 把隧道 socket 绑定到虚拟 IP;同机回环测试(或连接报 WSAEADDRNOTAVAIL/10049 时)请设为 false
enable_kcp_proxy false 启用 KCP 代理
disable_kcp_input false 禁用 KCP 入站
disable_relay_kcp false 禁用 KCP 中继
enable_relay_foreign_network_kcp false 对外部网络启用 KCP 中继
accept_dns false 接受 DNS 服务
private_mode false 私密模式
enable_quic_proxy false 启用 QUIC 代理
disable_quic_input false 禁用 QUIC 入站
disable_relay_quic false 禁用 QUIC 中继
enable_relay_foreign_network_quic false 对外部网络启用 QUIC 中继
quic_listen_port 自动分配 QUIC 监听端口
need_p2p false 强制要求 P2P 连接
foreign_relay_bps_limit 不限速(u64::MAX 对外中继限速(B/s)
instance_recv_bps_limit 不限速(u64::MAX 节点接收限速(B/s)
disable_relay_data false 禁用数据中继
enable_udp_broadcast_relay false 启用 UDP 广播中继
socket_mark 不设置 Linux socket SO_MARK 标记
encryption_algorithm "aes-gcm" 加密算法(aes-gcm / aes-256-gcm / chacha20 / xor
tld_dns_zone "et.net." 虚拟 DNS 域名后缀

其它内置默认值

  • 默认 STUN 服务器(未配置 stun_servers 系列字段时使用,源码 easytier-core/src/config/mod.rs):
    • UDP v4:stun.easytier.cnstun.miwifi.comstun.chat.bilibili.comstun.hitv.com
    • TCP:stun.hot-chilli.netstun.fitauto.rufwa.lifesizecloud.comglobal.turn.twilio.comturn.cloudflare.comstun.voip.blackberry.comstun.radiojar.com
    • UDP v6:stun-v6.easytier.cn
  • 默认监听端口 11010 是 easytier CLI 的默认值,本库 Node 不经过 CLI: 不配置 listeners 时节点不会监听任何端口,请显式指定。
  • 数据来源:easytier-core 源码 easytier-core/src/config/toml.rsConfig 结构体与 gen_default_flags())与 easytier-core/src/config/mod.rsNetworkIdentityPeerPolicyConfig、STUN 服务器常量)。

API 参考

完整 API 文档见 docs/python_api.md

模块级函数:

  • version() -> str:EasyTier 内核版本号

Node 主要方法:

  • 生命周期:start() / stop() / wait() / state() / is_ready() / latest_error()
  • 信息:instance_id() / instance_name() / peer_id() / running_listeners() / management_events()
  • 连接:add_connector(url) / remove_connector(url) / clear_connectors() / connectors()
  • 运行时配置:apply_config(config)(动态覆盖 port_forward / routes / exit_nodes 等,节点须 Running)
  • 快照:peers() / node_info() / routes() / dump_route() / global_peer_map() / local_public_ipv6() / foreign_networks()
  • 统计:metrics() / prometheus_metrics() / acl_stats() / acl_whitelist()
  • 凭证:generate_credential() / revoke_credential() / upsert_credential() / credentials()
  • 事件:events() / next_event(timeout)

事件订阅

节点运行时会持续产生事件(对端加入/离开、连接建立/断开、TUN 就绪等), 可以通过 events()next_event() 获取:

import time

node.start()

# 非阻塞:取出当前所有待处理事件
for event in node.events():
    print(event)

# 阻塞:最多等 5 秒,取下一个事件
event = node.next_event(timeout=5.0)
print(event)

事件返回格式为 {"事件名": 载荷} 的 dict,例如:

{"TunDeviceReady": "easytier0"}
{"PeerAdded": 123}
{"PeerConnAdded": {...}}
{"ConnectionAccepted": ["tcp://0.0.0.0:11010", "tcp://1.2.3.4:4567"]}

常见问题

Q1:Windows 上创建 TUN 失败? 需要以管理员权限运行,或在 flags 中设置 no_tun = true

Q2:如何卸载? pip uninstall easytier-pyo3

Q3:安装后创建 TUN 设备失败 / 提示找不到 wintun.dll? wheel 内随包分发 wintun.dllPacket.dllWinDivert64.sys(构建时由 build.rsthird_party/<arch>/ 自动复制进包,与 Python 架构一致)。 模块导入时会把 pyd 所在目录加入进程 DLL 搜索路径(AddDllDirectory), 因此随包安装的 wintun.dll 能被 easytier 自动找到,无需手动放置。 仅做 no_tun 的连通性测试则不需要这些 DLL。

TUN 已在 Windows 上实测通过(需管理员权限):双节点建链后, 用 tests/test_tun_manual.py 可验证 TUN 数据面(ping 经隧道可达)。 同机回环测试时节点需设 bind_device: False,否则连接报 WSAEADDRNOTAVAIL。

Q4:easytier 会不会影响我机器上的 Radmin VPN / 其它 VPN 网卡或劫持出站? 不会。easytier 创建的是自己独立的 wintun 网卡et_*),只添加 虚拟网段/24 的 on-link 路由,不设默认路由,不触碰其它网卡(实测 Radmin VPN 网卡的 IP/状态/路由在 easytier 运行前后完全一致)。停止节点后 网卡与路由自动清理。

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easytier_pyo3-0.1.3.tar.gz (661.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

easytier_pyo3-0.1.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (8.5 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.3-cp315-cp315t-manylinux_2_28_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.3-cp315-cp315-manylinux_2_28_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.3-cp314-cp314t-manylinux_2_28_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.3-cp314-cp314-win_arm64.whl (7.4 MB view details)

Uploaded CPython 3.14Windows ARM64

easytier_pyo3-0.1.3-cp314-cp314-win_amd64.whl (8.1 MB view details)

Uploaded CPython 3.14Windows x86-64

easytier_pyo3-0.1.3-cp314-cp314-manylinux_2_28_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.3-cp314-cp314-macosx_11_0_arm64.whl (7.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

easytier_pyo3-0.1.3-cp313-cp313-win_arm64.whl (7.4 MB view details)

Uploaded CPython 3.13Windows ARM64

easytier_pyo3-0.1.3-cp313-cp313-win_amd64.whl (8.1 MB view details)

Uploaded CPython 3.13Windows x86-64

easytier_pyo3-0.1.3-cp313-cp313-manylinux_2_28_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.3-cp313-cp313-macosx_11_0_arm64.whl (7.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

easytier_pyo3-0.1.3-cp312-cp312-win_arm64.whl (7.4 MB view details)

Uploaded CPython 3.12Windows ARM64

easytier_pyo3-0.1.3-cp312-cp312-win_amd64.whl (8.1 MB view details)

Uploaded CPython 3.12Windows x86-64

easytier_pyo3-0.1.3-cp312-cp312-manylinux_2_28_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (7.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

easytier_pyo3-0.1.3-cp311-cp311-win_arm64.whl (7.4 MB view details)

Uploaded CPython 3.11Windows ARM64

easytier_pyo3-0.1.3-cp311-cp311-win_amd64.whl (8.1 MB view details)

Uploaded CPython 3.11Windows x86-64

easytier_pyo3-0.1.3-cp311-cp311-manylinux_2_28_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.3-cp311-cp311-macosx_11_0_arm64.whl (7.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file easytier_pyo3-0.1.3.tar.gz.

File metadata

  • Download URL: easytier_pyo3-0.1.3.tar.gz
  • Upload date:
  • Size: 661.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for easytier_pyo3-0.1.3.tar.gz
Algorithm Hash digest
SHA256 01930e71c26b404e9a38cbe12e647b807a7d28a3e4123aaae50d5c9d60046361
MD5 a40c97874f24719a6144d8fc1e6b0cb7
BLAKE2b-256 ac2f2e4f98db9e294c438832707090527792e227912ab10b52c944e7cb38b49a

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3.tar.gz:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe8bce569116aa629558b49086b57e93c62658687e78ba566769735ad8f028d2
MD5 073dd9fe2534332162e5c0b71baad654
BLAKE2b-256 7910216ae762bc32158eacbce14cc27a69b9587a81bd75ec49b00fa83fd03308

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp315-cp315t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp315-cp315t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 38efe0601cd5b83993652329f4b6bfdcac49dc4dfcd2a8dc99961270a99bfa42
MD5 44c472a21e64421f5995e6e795aff3e0
BLAKE2b-256 ba2c0ff1644d5f78b59ea42bea034224445d0ec97fd6d1161e97a62a1d9b506c

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp315-cp315t-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp315-cp315-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp315-cp315-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d0fc4044cf0c17227538ed3ad229a9682253ae2c6327c0e6c92fd7a95554f6b
MD5 33a3b0b5d242c02b4d08c681d07289b2
BLAKE2b-256 bdfc2b18c33e90d0f600466c6e51a9eea292cf82cdad6fb3d63804dd8cfa674a

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp315-cp315-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c1a672a9c42046cd33b0f1410ba8dbc35fb16d49b525fc266dca5e72faa4dd0c
MD5 f36f75f157f24b1d764b35cb7c657652
BLAKE2b-256 ad71e91126f7bfdd421f532275ac66d821abc2f1280320bd825a59156e208fe5

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp314-cp314t-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 07b49462e04bd6026b73acc47e454ecf6dd44c876ed5e941ab017e038a2ba3eb
MD5 b57f798f3f4de9ddd6e4edc41f57c037
BLAKE2b-256 13bf3aea213d8aadaf384680853c7152b38fa5ad207846abc50953abeddae6cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp314-cp314-win_arm64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7e461b6aa56c97cf3f14a59526ffa40b9bc09ab785ba2ef897989108a2851ed6
MD5 766e2db79e402dde148854a62f0aff0b
BLAKE2b-256 19d2f3d76a9f959ccbf3fa825990e92bcc7d5ab77b8e864b9aaaaac4df5ee327

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8adecf6ff261ed9cffe8ed175f49120df247ad166a18cf25d68105a28515f4cc
MD5 4d51a7f1af64ca492d556004689b4dc2
BLAKE2b-256 dfebb0ac789a2be147033cde17838d036243e9b0e67bbc45b6efdc021f8f8d4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60b82ada593fac4ba11b3bbc728e81c102885f12df833824dd9f61b86c0500a3
MD5 3990af4affc9676a5e3795cb86fdbad3
BLAKE2b-256 e86625f8346794c82024f9f2f824144f85d08fe0e0fa0b95648ff2b233427e70

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 35e9906c3f8639d3268f4687cb1eb3d77c4aa8503122ffec99f16afe687fe19c
MD5 edd1741f449794c24f28b454f1a2cb4f
BLAKE2b-256 c4c4270e95f3358b9f8c1186c561ed2338a3bdaa7dd3c3897766d5fc07e806dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp313-cp313-win_arm64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 33488499dd7ad397e5d5c05a2a0f0f580b291d6b00d3cded316b36cdf42f4989
MD5 bac9a4625ccf15276b6eada76418aa02
BLAKE2b-256 09cb380678adcedd703400c6a8727e98f2d931c98009c21f3d80c11d1467c944

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c1b5a2317e2c2e0b9bc7f016947b3504cdcc10eede40d4ad07e1a6b6e833eb96
MD5 3ffb4315471259e6212b6fc1c6012e9a
BLAKE2b-256 59950797a8cb0c406c423d36b77244802eb380865fa2aa558e28c33546c196eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2d040cf48a6496a8094e5506e6bc8f0700b0b59c5c8da39a3c38c9a48124b6fa
MD5 a3ff7776db748fa78d2c57a49d5c6ed4
BLAKE2b-256 94bb9519d5b6eaac823fe81d70c384916119c6c6a6ff1b92851dea5c2be39658

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 aef2c35daeafd05d7dfe37a42aab920470b5db327f80d025a046ffa64ec41755
MD5 6e74e917dc272c26ae93f294805b28a8
BLAKE2b-256 d7b1e4d12eba8a22bcdad7633f993d55483e9dec47543024d59c8f137e38ceea

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp312-cp312-win_arm64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 485089b5a716e0105c7cee48f9bb2bf82b12972cc9c7bd7c421dba9d8da9b6e5
MD5 46cf7d884296d48eb89f831b009bbe47
BLAKE2b-256 e9dd7b7d734d4ea3e147fbd1ca7113bbd8c00f46d822d88dc40296201b2bbdd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2991d3289735c441e41fc9448b0347dce5a40bb2c29fec91e008cadd6c2df793
MD5 ddf82e4ec3538fa97331b0a23ede29a3
BLAKE2b-256 5007397cf1886d4792e7c30af200ae9999265ea784428eb2df68041c01b0c776

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b14809ad24900ab44f002d58c201618b5486756522a8ec1d9ebd8832225d31e0
MD5 38ff0f6bd781fb88e4b20e52c8993265
BLAKE2b-256 37da3b9a71c3e2d5e955d67a517e086c6a0d283e9042fa43e5c0444d37a18ad7

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 510f66758ffc94782d032008b4a94461a42cbaad36e0ab39645fa509d8f52ce4
MD5 2a9d6fe2f11f031aa4ea3a45346fa4b2
BLAKE2b-256 ab10ecb7d7d47fd084278fd2494a7b1f0ccd91fd95f4d1244ad54ee6bc4dc89d

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp311-cp311-win_arm64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ebe42dc4f8f2509a3c86b357da46ceb58c2e9208d49677341ce653421f252987
MD5 d61a33d6f6f81f36181c3e958b44f061
BLAKE2b-256 e4f49af53cdd8c9fc0d217b6f084b2602c4ce4b748365a589d8474ee863c470a

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0170132a078f2d3219b3d63033ab79d6eef0f695c62f20f31a1a63e5307ec98f
MD5 d6a5514fe44234760933f10ea0e2be0d
BLAKE2b-256 93963454c4a35cfbaa85f47f5e7668f2bc32dee510a08ba9f86d96b795298514

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file easytier_pyo3-0.1.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 681926048cffdaffb649b68ad9ea121d151f11cd9852384c38175e9eca99adbd
MD5 ef2df40a7e496596aec94e69afa1e74c
BLAKE2b-256 30fe88dc894cd45d73c7e45ba0c1e283d954e4c54bd5dd39b20e14a8e14e73a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on ECLteam/EasyTier-PyO3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.3 This release

21 files

0.1.2

21 files

0.1.1

21 files

0.1.0

21 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page