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.1.tar.gz (658.9 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.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (13.3 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.1-cp315-cp315t-manylinux_2_28_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.1-cp315-cp315-manylinux_2_28_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.1-cp314-cp314t-manylinux_2_28_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.1-cp314-cp314-win_arm64.whl (11.1 MB view details)

Uploaded CPython 3.14Windows ARM64

easytier_pyo3-0.1.1-cp314-cp314-win_amd64.whl (12.1 MB view details)

Uploaded CPython 3.14Windows x86-64

easytier_pyo3-0.1.1-cp314-cp314-manylinux_2_28_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.1-cp314-cp314-macosx_11_0_arm64.whl (11.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

easytier_pyo3-0.1.1-cp313-cp313-win_arm64.whl (11.1 MB view details)

Uploaded CPython 3.13Windows ARM64

easytier_pyo3-0.1.1-cp313-cp313-win_amd64.whl (12.1 MB view details)

Uploaded CPython 3.13Windows x86-64

easytier_pyo3-0.1.1-cp313-cp313-manylinux_2_28_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (11.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

easytier_pyo3-0.1.1-cp312-cp312-win_arm64.whl (11.1 MB view details)

Uploaded CPython 3.12Windows ARM64

easytier_pyo3-0.1.1-cp312-cp312-win_amd64.whl (12.1 MB view details)

Uploaded CPython 3.12Windows x86-64

easytier_pyo3-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (11.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

easytier_pyo3-0.1.1-cp311-cp311-win_arm64.whl (11.1 MB view details)

Uploaded CPython 3.11Windows ARM64

easytier_pyo3-0.1.1-cp311-cp311-win_amd64.whl (12.1 MB view details)

Uploaded CPython 3.11Windows x86-64

easytier_pyo3-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (11.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: easytier_pyo3-0.1.1.tar.gz
  • Upload date:
  • Size: 658.9 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.1.tar.gz
Algorithm Hash digest
SHA256 472a61aec0aa6d1cef50ed7afcdfdf3f492c806f346d435a0c32e6969c31239b
MD5 c92b46e2889930cec34bd1d60039d7fd
BLAKE2b-256 db985cacba5612238b9bf7a900c39c1ae1f8f5a1b64af036e83d5e31069a1a47

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1.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.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 46a68caf10d2bd1b1ddbfabdd7fddebcb84aa5c0854e79e2721f70acf50b2179
MD5 326086c9a172c6653222015ef012d356
BLAKE2b-256 459766c8edc6f0c11f0a0a8437daef307dcd26e0e110e3bc991276e216d24d7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp315-cp315t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp315-cp315t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 31585e9f57a7d395ffc3633c7a9b62e402094ffd583fb3b840ba64c997e9c760
MD5 5ae379d4902e3df1f119d746e78ebe94
BLAKE2b-256 3fd7fc5e7817c57cd839cdd106766e2b149b0c4e3d5fa7e395b41052cc4060bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp315-cp315-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp315-cp315-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6ae925a4f81dc7d5c64f05345b14710191d6cdeefdbaf96d727d55d39baca85
MD5 b100ba51ad3c40e33e9bbc19d59bcb7d
BLAKE2b-256 8addb2e6ac98b1e6df1eddf11b2a9ce07b04aad0c98a125d2d2af7565bf30e3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 25dcb96a80a524e5118127a02ab60de04918e9554094b74a00603888abec7627
MD5 4276e97b662503a7b7b50a1e345ab840
BLAKE2b-256 d25d5f612421ae31327e66a6233de92e457d447012e33eedf5b65859b14ff3af

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 eab95fab47d94230804dd71791552d1c095d41c422e94aba5692d3b8ef73eb7e
MD5 c673c64b987bd030188572681782ddaa
BLAKE2b-256 c306f0584503e2321ae448e535ae294c48782ded907198783e577c8cbd43aafb

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f9364d3e815a2d038e1094002e171b7fc71d31312dd63d4f59e6cbad5d355c8b
MD5 b890b6c99136658c76d40141ea077201
BLAKE2b-256 b9ebd5060f601b1d95732094cc64bcf87fa20fe8ed0d8814b0d551c51c58a92b

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 78d2c04695f570889a9f64b0d6aaddde3e45d1ca84866c1ff2d863cce3e13b64
MD5 82169a8065da26b2dff4b2928509bee3
BLAKE2b-256 b99e4415517c19ae5d636f4296dab60b35b1418ffcfa15671f8734c912c43da7

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b38b1c7c48faf2aaadc5823b91770c4cb3bb8bf2158cff0cd28bf03095686e2
MD5 643a7ed6b4ceae2d731e7feed87ce93f
BLAKE2b-256 dbba3feec114ea58c194d012bd1e3c2f441de7c2f0b991d664626b2149b214b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 3fc5df34b703e7ea7140771fe321c7e60aae84885d9ee5f35fe3b62359a111f3
MD5 d3f7814cad36050f5d63d3ea462e83aa
BLAKE2b-256 8fcc7549ee6c0bf9b9f10e7a4542c7475062b5f7cc2f30d7ffcadb43e62ba2ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 63e5a8b6d71bbeb0fd8052815537303be6efa9ac49f838a663e83d97574c7abf
MD5 94a0dc5b1da698be6d01e6ebf2db3f9e
BLAKE2b-256 ddfad845413d89f86cade4ce4e635ed692f5cf775f1aa874a35ba6ee831bf696

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f167194125effd13adcc6776f23a437cf8f417c53e7e829813eb370e2d75b003
MD5 aae9e435ec607a087992d2b0f2d039cb
BLAKE2b-256 ee826aa107752c5221a2a3bab4b5d5131b628914ea093386dde757d204b55b98

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d7e062f2d961cd1100dee71f06eb6820f232d514af3cd15a4fb0576618743121
MD5 8d1aaa1da5c48afedbd640fc3cbc3828
BLAKE2b-256 b8d29a91686918c7be5858c2607f37306dbd4ca4075d1001f8938c9491402469

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 0244bf68dcb9fccde12c2879c0a6871d6efb4cb40f01a7f0935133563baca182
MD5 4a2b38bd09e3d86994827bf37c2ef94d
BLAKE2b-256 ff362d083d29f7e03792dd916cd1a20c9eb1c137f7bea8be79473ee11de22863

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2459f2b7c0ab3cf7624c380a37446e14a65a29d28a18bc03d4cc96e9fc35eb0d
MD5 c290b66696d38fbdeef5b6811cb80bdf
BLAKE2b-256 dc054283bca062f77aa1b96bc5d6bf5e3503db61538586b8fc28aca470a4b731

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 614db9e60a767c2a9ddc6b61c225c56f1c14702fed5442f40dabfc1a9e8c9b72
MD5 fab6ded44f93680ce6ec81ada14d7c6c
BLAKE2b-256 114f35cf943611b3180ac74b8c6cfa46508cb8a6bcd4d48b2c0d8ec34cdc83ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f67021e7c43a0ec4e98898b46697541cfe53af825ab872ab63a5ad0c354cb514
MD5 1aff59ae4315f9c5cf343c623d154738
BLAKE2b-256 993b037af7243e718b9d71a052602a09563ce1296c7616a39875af651ea59830

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 1b08acb5ba9d19fc995cb03d10947a99c0cf16602c901b5fce78d2989f563726
MD5 ec4762ba06d30140294d7e8feaaed7c9
BLAKE2b-256 aaa98e2fbbfc0c65726561ecaeffefc69c54d0fa88afe2c745f749d0d07235a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b409f70b6bcc843858af17c219df399baf4d87b670a1c0dce32430bbfa4d2bf4
MD5 179e5be57b7c1ca0bc4fa1614fac1b4f
BLAKE2b-256 90e0e267ce9f6bac3f62854d7333c4c0e68416cd10a5f7309d3701f2437270fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d5c35755495113b1fdb928be08049c3f62d9e4199a708fa8e0987574066962c1
MD5 5c65b4239d68c61bf0826408bb8f6982
BLAKE2b-256 67f5d712eb4f723d4ad4dd30a77286f802b04cb540de2933950b227d6a36d76b

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for easytier_pyo3-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 818dd2c14a21364f7805a8d5a19188f647d97ba5c4c76ddfdc7f0c6569932d83
MD5 2b408bec8e488be51072825f98a08165
BLAKE2b-256 d8f33d4e29604c101b27607351e87237243f21be8a1cf08261517b61051c6f22

See more details on using hashes here.

Provenance

The following attestation bundles were made for easytier_pyo3-0.1.1-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

0.1.3

21 files

0.1.2

21 files

This release

0.1.1 This release

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