Saikuro - 跨语言IPC库
项目简介
Saikuro 是一个旨在简化跨语言集成的IPC(进程间通信)库,它真正实现了语言无关性。开发者可以用一种语言编写函数,并能够从其他支持的语言中无缝、透明地调用这些功能。
核心特性
- 共享类型模式:提供统一的类型定义系统。
- 能力强制执行:内置权限控制机制。
- 可插拔传输:支持 TCP、Unix 套接字、WebSocket 或内存等多种传输方式。
- 语言无关性:实现真正的跨语言互操作。
支持的编程语言
目前,Saikuro 已为以下主流语言提供了适配器:
- Rust - saikuro (crates.io) ✅
- TypeScript - saikuro (npm) ✅
- Python - saikuro (PyPI) ✅
- C# - Saikuro (NuGet) ✅
注:部分语言的包可能暂未正式发布到包管理器,即将推出。
使用示例
其基本使用模式非常直观:
- Rust 端:创建一个 Provider,注册一个名为 “add” 的函数,然后通过 TCP 等方式对外提供服务。
- TypeScript/Python 端:创建一个 Client,连接到上述服务,然后直接调用 “math.add” 函数。
项目结构
项目仓库主要包含以下目录:
- crates/:存放核心 Rust 库,涵盖协议、模式、传输、路由、运行时和代码生成等模块。
- adapters/:包含各语言(Rust, TypeScript, Python, C#)的适配器实现。
- docs/:项目文档站点。
许可证
本项目采用 Apache-2.0 开源协议。
项目地址:https://github.com/Nisoku/Saikuro
Rust 文档链接检查工具 - 裸 URL 检测
这是 Rust 编译器工具链中 rustdoc 的一个实用模块,专门用于检测和修复 Rust 文档(由 Markdown 编写)中未被正确链接化的 URL 地址。
主要功能
- 检测裸 URL:自动识别文档中那些没有被链接化的“裸”URL(例如直接写出的
https://example.com)。
- 自动修复建议:为检测到的裸 URL 提供修复建议,通常是将其用尖括号包裹(如
<https://example.com>),这样 rustdoc 在生成 HTML 时就会自动将其转换为可点击的链接。
关键技术点
- 正则表达式匹配:使用精心设计的正则表达式来匹配以
http:// 或 https:// 开头的完整 URL 模式。
- 该模式能够匹配子域名、根域名以及可选的查询参数或 URL 片段。
- Markdown 解析上下文:通过
pulldown_cmark 解析器遍历文档的抽象语法树(AST)。
- 只检查普通文本节点中的内容。
- 智能跳过代码块和已有链接内部的文本,避免误报。
- 智能修复逻辑:
- 标准情况:在裸 URL 的前后添加
< 和 >。
- 特殊情况处理:如果 URL 已经被方括号
[] 包裹(这是 Markdown 链接的文本部分但缺少目标),则会建议将方括号替换为尖括号。
- 诊断报告:该工具会生成一个编译器 lint 警告,提示“裸 URL 不会自动转换为可点击链接”,并附带一条机器可应用的修复建议,方便集成到编辑器中一键修复。
代码位置
该功能的实现位于 Rust 编译器源码树中的以下路径:
src/librustdoc/passes/lint/bare_urls.rs
相关代码片段可在此查看:https://github.com/rust-lang/rust/blob/024757fe/src/librustdoc/passes/lint/bare_urls.rs#L76-L84
本文整理自最新的 Rust 社区动态。了解更多前沿技术讨论与实践分享,欢迎访问 云栈社区。
|