No project description provided
Project description
patch_bay
一句话:你写一张「谁在哪监听、线怎么连、线上什么条件才放行」的表;程序启动后主动去连每一个监听地址,帮你在这些点之间转包。
一分钟理解
- 配置:列出要连的
host:port、给它们起名字,再画有向边(从谁到谁)。 - 启动:中央进程按表拨号,维持长连接;断线会按实现策略重试。
- 转发:谁发来一包,就沿着从它出发的边往下试;边上可以挂表达式,只有算出来为真才真的发出去。
谁干什么(对照表)
| 角色 | 在本配置里长什么样 | 本包帮你做什么 |
|---|---|---|
| 对端进程 | 一行 host:port + 在 jacks 里的名字 |
主动去连这个地址 |
| 你(运维/开发) | 改 YAML/JSON 配置 | 改拓扑多半只改配置,不用改对端互联代码 |
设计特性
配置驱动的星型拓扑
- 用一张表说明「名字 ↔ 监听地址」和「从谁到谁的边」。
- 对端之间不直连,都只跟中央进程说话;换拓扑主要是改配置。
主动拨号与长连接维持
- 配置里出现几个地址,就去连几条线。
- 对端在表里就是
host:port字符串;本包不依赖任何固定的「接入 SDK」。
边上表达式路由
| 步骤 | 发生了什么 |
|---|---|
| 1 | 收到某一端发来的一包字节 |
| 2 | 看从它出发的边,按配置顺序试 |
| 3 | 边上的规则在「当前这包」上求值,为真才转发 |
求值失败或表达式为假,就不沿这条边发,继续试下一条(若有)。
同源多线与有序尝试
- 同一个「起点名字」可以拉出多条出线。
- 按配置里的先后顺序一条一条试;适合做主备、分流、逐步收紧条件。
字节透明的载荷模型
- 中央只管字节流:不替你假定一定是 JSON 或一定是某种对象。
- 规则里能看到长度、尝试解析 JSON 等;业务长什么样留在各对端进程里。
可插拔的交换侧监听器
- 提供一套同步回调(连上谁、断谁、转成功/失败等)。
- 附带一个开箱即用的日志实现,方便先跑起来再慢慢接自己的监控。
与接入侧对齐的有线帧语义
- 本包自带和对端约定一致的帧打包/解包,保证「握手、发、投递、确认、报错」这些控制意思在字节上对齐。
- 以后协议要升级,记得和对端实现一起对表,别只改一边。
配置
jacks
数组;元素字段:
| 字段 | 说明 |
|---|---|
name |
名称(wires 里用名字引用,便于配置复用) |
address |
对端在本机 监听 的 host:port(中央节点向此地址发起长连接),须在列表内唯一 |
接入进程自行在本机绑定 host:port 并挂协议约定路径;本配置里的 address 须为中央节点可达的 IP:端口。业务代码不必与本字段同名,只需把对端实际监听地址填进配置。
wires
数组;元素常用键名 from、to。字段:
| 字段 | 说明 |
|---|---|
from |
源端在 jacks 里声明的 name |
to |
目标端在 jacks 里声明的 name |
rule |
在 rules 中已定义的规则 id |
rules
| 项 | 说明 |
|---|---|
| 键 | 规则 id,供 wires 中 rule 引用 |
| 值 | 表达式字符串;求值时带入当前数据包相关变量(如原始字节、可解析出的 JSON 等) |
| 转发条件 | 仅表达式成立时沿该边发出;不成立或求值失败则不发出 |
listen
| 默认 | 说明 |
|---|---|
8765 |
配置项保留;当前中央节点不再在本字段上接受对端经此端口入站,可忽略。 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python_library_patch_bay-0.1.9.tar.gz.
File metadata
- Download URL: python_library_patch_bay-0.1.9.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b7b54641e2a9c9c11e044e70e341c4e08d09109b71feaf6cc6b475981e3cd75
|
|
| MD5 |
52835556b546c96d2e92266aab2cf860
|
|
| BLAKE2b-256 |
4018cc58c7e123a953d13f1d91bf7a5f1eac11286be420ab96e69fe77ef455b7
|
File details
Details for the file python_library_patch_bay-0.1.9-py3-none-any.whl.
File metadata
- Download URL: python_library_patch_bay-0.1.9-py3-none-any.whl
- Upload date:
- Size: 20.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3063d773e6e98044caf7184c183d2804235c4c3bc4515b32e6871f338a97fe6
|
|
| MD5 |
8ebac0d6588092ad1a662f04ce92f4ba
|
|
| BLAKE2b-256 |
f42ca6e3728d20af6261f44c0e338e551565feda81b3320e58bc9606e0e09205
|