立即注册  找回密码
 立即注册
CeraNetworksBGVM服务器主机交流会员请立即修改密码Sharktech防护
查看: 35|回复: 3

(持续更新)开源个网络协议转换工具

[复制链接]

(持续更新)开源个网络协议转换工具

[复制链接]

10

主题

177

回帖

598

积分

高级会员

积分
598
dunce

10

主题

177

回帖

598

积分

高级会员

积分
598
2021-7-16 02:00:19 | 显示全部楼层 |阅读模式
本帖最后由 dunce 于 2021-7-16 02:03 编辑

不得不说自从开始自学编程以后,每次放长假都能给自己找到事情做。这玩意我本来是打算当插件写的,用来扩展我上个寒假写的科学工具。后来又觉得还是做成独立的工具比较方便(装本地或者装中转机都可以),还能光明正大地开源出来给其他人用骗star。

目前框架已经差不多定下了,从头到尾都用静态派发,尽量保证协议之间可以自由搭配,同时获得比较好的静态检查和编译优化。(模板满天飞,写的时候越发的觉得手上的梯子档次不行。不过毕竟那会才刚学编程没几个月,姿势水平不够,只会玩玩go js py 以及现学现卖的qt. 等我写完这个程序,再把梯子和图形客户端全部重写一遍)

已经支持的协议有:
[ol]
  • tcp
  • unix socket
  • websocket over tcp
  • websocket over uds[/ol]复制代码
    在linux机器上tcp或者uds可以零拷贝

    后面会加上tls/h2/quic,支持自定义headers。

    配置文件暂时长这样
    [ol]
  • {
  •         "dns_mode": "ipv4_only",
  •         "endpoints": [
  •                 {
  •                         "listen": {
  •                                 "addr": "127.0.0.1:5000",
  •                                 "net": "tcp",
  •                                 "trans": {
  •                                         "proto": "plain"
  •                                 }
  •                         },
  •                         "remote": {
  •                                 "addr": "~/Downloads/uds.sock",
  •                                 "net": "uds",
  •                                 "trans": {
  •                                         "proto": "ws",
  •                                         "path": "ws://127.0.0.1:10000/test" #这里以后会改成path+headers
  •                                 }
  •                         }
  •                 },
  •                 {
  •                         "listen": {
  •                                 "addr": "~/Downloads/uds.sock",
  •                                 "net": "uds",
  •                                 "trans": {
  •                                         "proto": "ws",
  •                                         "path": "/test"
  •                                 }
  •                         },
  •                         "remote": {
  •                                 "addr": "127.0.0.1:15000",
  •                                 "net": "tcp",
  •                                 "trans": {
  •                                         "proto": "plain"
  •                                 }
  •                         }
  •                 }
  •         ]
  • }[/ol]复制代码

    [tcp->ws over uds -> tcp]
    在我机器上能跑16Gbs (单独ws也差不多;tcp和uds因为零拷贝的缘故,可以跑到40Gbs)

    以后配置文件会支持toml,可能我还会单独实现个配置文件编辑器。

    仓库地址: https://github.com/zephyrchien/midori  文档以后再补吧。。看个番睡觉去了
  • 回复

    使用道具 举报

    7

    主题

    65

    回帖

    437

    积分

    中级会员

    积分
    437
    Kimiato

    7

    主题

    65

    回帖

    437

    积分

    中级会员

    积分
    437
    2021-7-16 02:03:01 | 显示全部楼层
    前排帮顶
    回复

    使用道具 举报

    4

    主题

    38

    回帖

    156

    积分

    注册会员

    积分
    156
    洗澡之后挖耳朵

    4

    主题

    38

    回帖

    156

    积分

    注册会员

    积分
    156
    2021-7-16 02:03:32 | 显示全部楼层
    我看不懂,但我大受震撼。
    回复

    使用道具 举报

    30

    主题

    5696

    回帖

    1万

    积分

    论坛元老

    积分
    12068
    h20

    30

    主题

    5696

    回帖

    1万

    积分

    论坛元老

    积分
    12068
    2021-7-16 02:06:55 | 显示全部楼层
    小朋友,趁还没成年可以玩玩,成年了就赶紧收手,叔叔告诉你这个很危险
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2024-12-23 15:00 , Processed in 0.017230 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表