惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
News | PayPal Newsroom
P
Proofpoint News Feed
Cyberwarzone
Cyberwarzone
C
Cisco Blogs
SecWiki News
SecWiki News
Know Your Adversary
Know Your Adversary
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
NISL@THU
NISL@THU
WordPress大学
WordPress大学
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Threat Research - Cisco Blogs
AI
AI
Simon Willison's Weblog
Simon Willison's Weblog
Security Archives - TechRepublic
Security Archives - TechRepublic
有赞技术团队
有赞技术团队
L
LINUX DO - 热门话题
Hacker News: Ask HN
Hacker News: Ask HN
V
V2EX
G
GRAHAM CLULEY
TaoSecurity Blog
TaoSecurity Blog
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
F
Fortinet All Blogs
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
Latest news
Latest news
The Hacker News
The Hacker News
aimingoo的专栏
aimingoo的专栏
T
Troy Hunt's Blog
S
Schneier on Security
I
Intezer
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threatpost
爱范儿
爱范儿
The Register - Security
The Register - Security
S
SegmentFault 最新的问题
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
宝玉的分享
宝玉的分享
Recent Commits to openclaw:main
Recent Commits to openclaw:main
美团技术团队
B
Blog RSS Feed

Rust

RustScript: 给你的 Rust 项目带来脚本化功能 - V2EX RUST 语法极其丑陋 - V2EX 一款跑在终端里的本地优先密码管理器,用全屏 TUI 管理账号、密钥和安全笔记。 - V2EX 如何理解 rust 闭包的借用值机制? 被借用的值在闭包内到底是什么类型? [开源] Best of RS - 一个由 Rust 编写的追踪 Rust 开源趋势的全栈 web 项目 - V2EX Rust 真是非常适合 AI vibe coding 的语言 - V2EX Pumpkin - 使用 Rust 开发的高性能 Minecraft 服务端 - V2EX 开源这两天 Vibe 的 Rust 重写的 OpenClaw - V2EX 用 rust 写了一个非常简单的局域网文本同步的小玩意 - V2EX [寻求帮助 Linux ] 用 rust 写了一个跨平台输入监听库(鼠标键盘) - V2EX Contributions to Rust and LLVM in 2025 - V2EX Linux 内核中的 rust - V2EX 2025 年度 Rust 语言社区调查 已经发布 - V2EX rust 让我抓狂、擦汗 - V2EX 推荐一款我写的动态配置语言: Faml - V2EX 如何看待 Rust? - V2EX Rust Web 开发脚手架 v0.6 发布啦! - V2EX rathole 这个项目是不维护了吗? 之前那个 rust 贡献大佬找到工作了,找他的团队还不少 - V2EX 太快了! Rust 太快了! - V2EX 介绍一个 like rails 的 rust 框架。 性能和开发速度都快。 - V2EX 除了写小工具外再也不想用 Rust 了 - V2EX rust 我想你了 - V2EX rust 程序员的硬盘是多大的? nodejs 继任者? - V2EX rust 练手写的,仿 uv 包管理器 av - V2EX Rust 的安全神话?为何在关键系统如数据库、大模型代码中仍选 C++ rust 实现的抓包存盘的程序 nsave 有人使用 Rust 重构过旧项目吗? - V2EX 使用 WebAssembly 构建的高性能在线计算工具 V2EX tikio 里面的代码怎么调试呢 有人在用 rust 写 web api 吗? rust 来得快去得也快 - V2EX rust 的有没有什么好的论坛? - V2EX 这里搞 Rust 的多吗? - V2EX 目前 Rust 最好的开发工具是哪个? - V2EX rust 编译报错函数重复定义 - V2EX Rust 学习几个月之后,真正要自己写的时候就懵逼 - V2EX 关于 rust axum 中使用 gprc 的一个疑惑 - V2EX std::net::UdpSocket 的 shutdown 机制是我理解出了问题么? - V2EX 写了一个从 modelscope 下载模型的 crate - V2EX 看到这样的 rust 代码要懵逼了,不知道咋入手,求指导 - V2EX Rust 两次入门后,尝试写一个 web 项目,懵逼中~ - V2EX 求帮打包个 exe - V2EX Rust HTTP Client, Golang tls-client/utls 的完美替代品 - V2EX Rust API 开发脚手架 - V2EX FnOne 特征是至少调用一次还是只能调用一次? - V2EX 大佬们,一人来一道 Rust 面试题,准备年后跳槽 - V2EX 请教 rust 如何做到交叉编译 - V2EX 理了一下手上惯用的一些命令行小工具,发现蛮多是 rust 写的。是不是 rust 也适合做这种小工具 - V2EX rust 怎么不通过管理员权限的情况下拿到 windows 用户所有的 uwp 应用名称,图标和路径 - V2EX 统计下放弃 RUST 的人的数量=== - V2EX 关于 Rust 所有权,如果对 mut 变量进行嵌套 mut 引用该怎么理解?
Rust 编写的高性能 HTTP/HTTPS/SOCKS5 代理服务器 - V2EX
0x676e67 · 2025-01-24 · via Rust

这是一个创建于 506 天前的主题,其中的信息可能已经有所发展或是发生改变。

  • Rust
  • 代理
  • 配置

    15 条回复    2025-08-24 10:39:35 +08:00

    heiher

    2

    heiher      2025 年 2 月 8 日

    支持~ 我有一个 C 语言写的 SOCKS5 Server https://github.com/heiher/hev-socks5-server ,用项目中同样的性能测试方法简单测了一下 SOCKS5 的 TCP 转发性能,Linux x86_64 平台,内存使用始终稳定在 77M ,1 路连接上传、下载速率都在 32GB/s 左右,CPU 使用 63-90%,10 路连接并发速率在 130GB/s 左右,CPU 使用 870-890%。

    PTLin

    5

    PTLin      2025 年 2 月 20 日

    @heiher 老哥你这个挺牛逼呀,自己手撸了协程库,socks5 库,服务器库,代理库和隧道库。

    heiher

    6

    heiher      2025 年 2 月 21 日

    @PTLin Purely toys, just for fun. :)

    PTLin

    7

    PTLin      2025 年 2 月 21 日

    @heiher 这两天把你的协程库看了个大概。hev_task_execute 切换栈,hev_task_executer 和 hev_task_system_schedule 里 setjmp 前后对栈上 task/ctx 变量的维护和用其实现的协程切换确实很有意思。
    不过我有个疑问,比如 x86 下 hev_task_executer 中,setjmp/longjmp 只会保存和恢复保留寄存器以及 rsp rip ,怎么保证 longjmp 切换上下文后,hev_task_executer 后续读取 task 变量一定从栈上读的,确保 task 变量不会被优化成寄存器变量呢?

    0x676e67

    8

    0x676e67      2025 年 2 月 21 日

    @heiher 用 rust 的 tokio async runtime 已经到性能瓶颈了,大抵是要换 runtime 了,正好有数据对比一下。

    heiher

    9

    heiher      2025 年 2 月 21 日

    @PTLin 答案是各级函数调用的所有寄存器值切片都被保存并恢复了。具体展开来说,有通用寄存器的指令集架构一般会在调用约定中将寄存器分为 Caller-saved 和 Callee-saved 两类,在多级函数调用中每一级函数都可能会修改寄存器的值形成新的上下文状态。在函数中对于 Caller-saved 寄存器可以直接修改,因为 Caller 需要的寄存器旧值它自己保存了,而 Callee-saved 必须在修改前将旧值存入栈中。因此整个调用链绝大部分帧的寄存器值都已保存在栈中,只有最末级的 Callee 存在还未入栈的寄存器值。如果此时以这级作为 Caller 再调用 setjmp ,我们来考虑一下 setjmp 应该怎么实现,会发现它根本不需要保存 Caller-saved 寄存器,只需要保存 Callee-saved 寄存器以及一些并不属于以上分类且有可能被改变且影响上下文的寄存器,比如 sp 、pc 、各种 flags 等等。而后续 longjmp 回来恢复这个调用链的上下文时,也只需要再恢复 setjmp 中保存的那部分寄存器值,这样随着这个调用链再逐级弹出,所有寄存器值的完整切片均能被恢复出来。

    PTLin

    10

    PTLin      2025 年 2 月 22 日

    @heiher 感谢回答,我也是太久没接触过调用规范了,一时间有点懵了。
    总结下,这分为三种情况
    1 变量在 setjmp 后从栈读取。
    2 变量在 setjmp 前后都是从保留寄存器( callee saved )读取。
    3 变量在 setjmp 前后都是从临时寄存器( caller saved )读取。
    第一种情况自然万事大吉。
    第二种情况,setjmp 会保存 callee saved ,longjmp 会恢复 callee saved ,所以寄存器值始终正确。
    第三种情况,在 call setjmp 前就会把变量所在的 caller saved 寄存器压栈,而在 setjmp/longjmp 返回后会把变量代表的 caller saved 寄存器弹出。所以寄存器值始终正确。

    PTLin

    11

    PTLin      2025 年 2 月 22 日

    @PTLin 当然不是说 2 3 这些变量 setjmp 前后一定就在寄存器里,也可能一开始由寄存器表示,随着指令的执行因为某些原因被压入到了栈中,但是最后当使用的时候总是会正确的从栈中复原出来。

    molezznet

    12

    molezznet      2025 年 3 月 19 日

    更新了啊 记得以前支持 update 命令 现在好像没了?

    0x676e67

    13

    0x676e67      2025 年 3 月 19 日

    @molezznet 集成到 vproxy self 子命令去了,现在可以更新或卸载:vproxy self uninstall / vproxy self update