Rust 开发者发布类型安全的异步 Socket.IO 客户端库
作者分享了自己开发的 sioc —— 一个基于 Tokio 构建的类型安全异步 Socket.IO v5 客户端库。
开发背景
Socket.IO 是一个流行的实时通信协议和 JavaScript 库,基于 WebSocket 等传输方式,提供命名空间、事件、确认机制和二进制附件支持。
作者最初只是想为游戏 generals.io 编写一个 Rust 机器人,但现有的客户端库存在以下问题:
- rust-socketio:使用回调模式,在异步 Rust 中使用体验很差。回调必须满足
Send + Sync + 'static,强制使用智能指针和内部可变性来管理共享状态 - socketioxide:仅提供服务器端实现,不适合客户端场景
核心解决方案
sioc 用强类型和通道(channels)替代回调机制,主要特点:
- 事件处理通过标准 match 语句实现,状态存储在封闭作用域中
- 无需智能指针或内部可变性
- 通过类型级标记(type-level markers)编码确认(ack)和二进制策略
- 编译器可以在编译时检查事件是否需要确认以及是否携带二进制附件
使用示例
库提供了派生宏(derive macros)来定义事件类型,支持:
- 带类型化确认的事件发射
- 超时控制
原文链接:https://www.reddit.com/r/rust/comments/1tk1jw2/i_wrote_a_typesafe_async_socketio_client_to_solve/
ghcitty - 快速友好的 GHCi 前端工具
项目简介
ghcitty 是一个用 Rust 编写的轻量级二进制程序,为 GHCi(Haskell 交互式解释器)提供了现代化、友好的前端界面。
主要特性
- 语法高亮:提供代码着色显示
- 结构化错误提示:显示期望值/实际值对比、自动导入提示、错误代码链接
- 智能补全:
- Tab 键补全并显示内联类型
- Fish 风格的灰色提示补全
- 多行输入:自动检测多行代码并支持智能导航
- 美化输出:优雅打印记录、列表、元组等数据结构
- Hoogle 集成:内置 Haskell 文档搜索
- 绑定浏览器:查看当前环境中的绑定
- 项目自动检测:自动识别 stack/cabal 项目
- 会话管理:自动保存和恢复会话
- 文件监控:文件修改时自动重载
- Vi 模式:支持 Vi 键绑定
原文链接:https://github.com/mattlianje/ghcitty
psleep:带进度条的 sleep 命令替代工具
作者在 Reddit 的 Rust 社区分享了自己开发的命令行工具 psleep,这是一个 sleep 命令的增强版替代品。
核心功能
- 可视化进度显示:不再盯着空白终端等待,psleep 会实时显示剩余时间
- 完全兼容原生 sleep 命令:支持相同的时间格式(如
psleep 30、psleep 1m30s、psleep 2h5m)
主要特性
- 多种进度条样式:提供条形图(bar)、方块(blocks)、点(dots)、表情符号(emoji)、旋转图标(spinner)等多种显示风格
- 原生终端进度支持:在支持的终端中,进度条可以显示在标签栏上(使用 OSC 9;4 协议)
安装方式
- macOS(Homebrew):
brew install Yesh-02/tap/psleep - 通过 Cargo:
cargo install psleep
项目信息
- GitHub 地址:https://github.com/Yesh-02/psleep
- 开发语言:Rust
- 特别说明:该软件的代码部分由 AI 生成
原文链接:https://github.com/Yesh-02/psleep
Niche.rs - Rust类型布局与优化可视化工具
主要功能
- 类型布局可视化:专门用于展示Rust编程语言中的类型内存布局
- Niche优化分析:可视化展示Rust的niche(利基)优化技术
核心特性
- 支持多个目标平台:
- x86_64-linux
- aarch64-linux
- i686-linux
- wasm32
- 提供交互式代码分析功能
- 支持深色模式
- 可生成分享链接
技术信息
- 工具版本:Nichy 0.3.1
- 使用的Rust编译器版本:rustc 1.97.0-dev
- 开源项目(提供源码链接)
原文链接:https://niche.rs/
--
From 日报小组 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论