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.2.tar.gz (661.0 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.2-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (10.0 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.2-cp315-cp315t-manylinux_2_28_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.2-cp315-cp315-manylinux_2_28_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.2-cp314-cp314t-manylinux_2_28_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.2-cp314-cp314-win_arm64.whl (10.1 MB view details)

Uploaded CPython 3.14Windows ARM64

easytier_pyo3-0.1.2-cp314-cp314-win_amd64.whl (11.2 MB view details)

Uploaded CPython 3.14Windows x86-64

easytier_pyo3-0.1.2-cp314-cp314-manylinux_2_28_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.2-cp314-cp314-macosx_11_0_arm64.whl (8.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

easytier_pyo3-0.1.2-cp313-cp313-win_arm64.whl (10.1 MB view details)

Uploaded CPython 3.13Windows ARM64

easytier_pyo3-0.1.2-cp313-cp313-win_amd64.whl (11.2 MB view details)

Uploaded CPython 3.13Windows x86-64

easytier_pyo3-0.1.2-cp313-cp313-manylinux_2_28_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.2-cp313-cp313-macosx_11_0_arm64.whl (8.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

easytier_pyo3-0.1.2-cp312-cp312-win_arm64.whl (10.1 MB view details)

Uploaded CPython 3.12Windows ARM64

easytier_pyo3-0.1.2-cp312-cp312-win_amd64.whl (11.2 MB view details)

Uploaded CPython 3.12Windows x86-64

easytier_pyo3-0.1.2-cp312-cp312-manylinux_2_28_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (8.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

easytier_pyo3-0.1.2-cp311-cp311-win_arm64.whl (10.1 MB view details)

Uploaded CPython 3.11Windows ARM64

easytier_pyo3-0.1.2-cp311-cp311-win_amd64.whl (11.2 MB view details)

Uploaded CPython 3.11Windows x86-64

easytier_pyo3-0.1.2-cp311-cp311-manylinux_2_28_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

easytier_pyo3-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (8.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: easytier_pyo3-0.1.2.tar.gz
  • Upload date:
  • Size: 661.0 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.2.tar.gz
Algorithm Hash digest
SHA256 b4c6c8a254958fab840d1faefd6fd7ce37fd610f6080336e0a989235d89e13aa
MD5 381a6696e77db89d51b5a830cd878865
BLAKE2b-256 c71bca8f5929793aeff6a47cd7b715dbba06732d105b76257c45b302a485736b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 739c27c47cdf621d47fab7e31723d88fea7fb2b1b86dd901fad26dbf16c375f1
MD5 105562155668051fbdfe423bd94885e4
BLAKE2b-256 fd2c2fd5b11fffb79fd263f8bdca0c2560578ff38371f54d42b6853f57094530

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp315-cp315t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 962da52fa96aad634f104c0e60671878b9369623f8655a9639b966effd25d61a
MD5 a56c4dd40ff445585be0646bf5ec16a0
BLAKE2b-256 88e7929104e1b271e09aa2bbb8e40073c37c6c2d707c99288bb51985dce26a56

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp315-cp315-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d12bd8fc049e6f28bee3487147e8f6476f65b36cf03901db6336ea1d04c08f4a
MD5 028a864c89f3d0667b109a855024c4f6
BLAKE2b-256 c5a2eb01ac0aa4f2635feb071f3da62b5791ec970712ab96b79008037c6b9ae5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9782bfe81fd8214f206b4520ad4d69a54cb0eb7f6289c750bfa3fb21b30ba740
MD5 1e045d09408fcb8410cfd8818d498a93
BLAKE2b-256 d8697a4bdb415af82373bda7f00cc9c203e23da468993b79bf69514ce23abda9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 afdaa46856ffd834b33233d694e85afc3b67ca7ff56f8a24715242b06b531675
MD5 08a52debcea0b0252e3b0133424cbc4f
BLAKE2b-256 3d9c88c281bc704d1df6d7b4c13343bc120c3a7ac7bd5cf01ddaf3407830a896

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6b0aba3ee2c86dda440dd942dd1dc8fa1c4e4f71bbee378d41fce7e80290059a
MD5 8b74c58eb79e86c430d3d4473a1bfe3a
BLAKE2b-256 1e59f72ff13c0dc315a9a86097178cc59cee69819ca05e35a70bc9ca679dd8e2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97b5d1f52eb2c774816e3bc6346f39dd6c7c9c14c1551b27812fee4d175327a1
MD5 9d8c500a2c8d3b0a4e45fa3b1bbe82ca
BLAKE2b-256 501369d237270d6f7fe4cb96fe2c118aafa719bb07740ef63ce5a588a749ec9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a4b8e220ff792e537513ddde3f2986173d12118abf2b27c1932b3662740e8cc1
MD5 230e6345cd1a9f67e4d387dc1e6dfb4f
BLAKE2b-256 21d9d5cc824594efc6988d67180f15e3986526a33854fd41cb4485c85875e441

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 17b3585c2f2b121323e3ac480c390a41ee384411a02f6fdd22d0c725c9e4bea2
MD5 18ce0ac7fcd9dff102dd4a2c427a849e
BLAKE2b-256 959712b0ccbbcf1dfc52e20986a1677d840c5b5553cb63856582b0e06a406bcf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 db9768c94494998c77b11c40fa862199d7dc722876c773c29f54e459aa92bb58
MD5 ab20a48619789ad29350c9d1cfe3708b
BLAKE2b-256 f6e20d56c1dc497256a3e2048da3a24a42356d047441d448f67bb8e228dc1c24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2d01bc7e8a94876952d52dba92a1a841fa8871521cca9b707f3113196d8a41bc
MD5 b4aa3021a33c71855bcebf6d309a3872
BLAKE2b-256 9f36dc3b883c19ad74595d7dacae91e7fad492479a2e9106efc37ba4672439cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1cb8c4030382154730aed27173a7a729173063f54303dd934dea78867a71e64e
MD5 02399b573599fe010e560c06c75334ce
BLAKE2b-256 f7ba1dd70463c3e1bab455eeeaa7886984ff0a16cbb47ab6dcec53fa20e404bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 ee071906bf9912260a6a5ff34e3bb6011644a91fdcac48b55e57eafd37603a2c
MD5 0f57d9632b2a50dbf99fd65712c1700f
BLAKE2b-256 a1853082f061626f984b01f5c7a8ea89d45e02faa748792347e33686ce9c243b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e2e029de092004811ef71b52fce59e0263e3da6ddd512b603f3110200a73f2c4
MD5 ba37138d5a7c9f49b55aa84c36d4988d
BLAKE2b-256 dc6ae7308f95c70479727c4199d61d726a750c2486c201ca3ae413bbc144dc07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 186219b3317fef544c8f0ff2a36823ee2a4c83f4ba7bcaac387fd5b34ca93b46
MD5 fa1e8675a2a6d8fd54e932239ab96683
BLAKE2b-256 30654f077d41da3542daa626623d780e87abb9ac43f6c4ba787dcf8ae2faf1ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9f8e3a20c3518d6f076b1aa021009e6ee4cc188f1a70dba5c2470bca8f429e45
MD5 9b96ad408e02cb441c9eb3a1e791532c
BLAKE2b-256 7ff0810dcbaa005331184c77057674209bb388583c647d3d6099b63e519402d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 ad5aabee75d5ca76d098c78b6e12b96b363082a916a978ce4907ef96435a865c
MD5 efa955b7c28ec994d5272ae8362a30c9
BLAKE2b-256 9cf660f8a8e8c518e3cf82a973ab6d5a306f9e7a705e9cc427224757891daee9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d254b509b7e02458316fa22cbaa1ee36930ad66723e1564c463438a7fc2ef9ca
MD5 d99fd544d0a07ec89ea70a9feb4a78c4
BLAKE2b-256 5d72babfcc329236a9ea2ac8266bc568bd139b4781eb122d99e38b046cc75547

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 46ea8907c7c3a2c0c55a319da17d9880a7a05953302fcb1eff7a15fa9efa4c2f
MD5 5b3603758dbbe0f4d4ea35bab75c2942
BLAKE2b-256 ac70d7f0464edb46b1b8ab05b83208f3bc257496f54c7e1c96e6ce71d7cc26ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for easytier_pyo3-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dfb2654163403e84323493993ab86304253cc0f1d038a38162b588d608f8cdfe
MD5 3d200116e044fa7b83a63a299d5a233d
BLAKE2b-256 2b8dcf35a7f897758073e08bf09b222d8c644ae40fbd35b59c51c9311dd280e3

See more details on using hashes here.

Provenance

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

This release

0.1.2 This release

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