yfaming's avatar
yfaming
yfaming@coinos.io
npub1jz8m...rg8y
- coder: Rust, Python, Racket(learning...) - Nostr 中文圈 https://following.space/d/musdrpjpdmbr 值得关注的 nostr 中文用户都在这儿! - 博客 https://yfaming.com/
yfaming's avatar
yfaming 4 days ago
# uv 与 cargo-script Python 的 uv 和 Rust 的 cargo 都支持单文件脚本,这个功能深合我意啊! 大体思路是,一个源码文件对应一个项目,项目依赖和其他元信息以特定格式放在注释里面。运行时拉取依赖,编译(并自动缓存构建产物),最后真正执行脚本。 它最大优点是保持了简单。我们可以直接把单文件脚本做成命令行工具,不用操心项目构建安装等琐事。毕竟项目的的心智成本挺高的,而脚本就是随便搞一搞的事。另一方面,它又隐式支持了项目的核心功能,尤其是依赖管理这一块。哪怕最简单的脚本,也免不了依赖第三方包。如果不支持依赖管理,这个功能也没什么用处了。 这个功能真的值得想要有所作为的脚本语言跟进啊。 image
yfaming's avatar
yfaming 6 days ago
#DeFi实盘 2026-06-28 当前市值 114.91,净值 0.5608。本周 LP 收益 0.3。 BTC price = 60072;SOL price = 71.79。 # 本周概况 本周交易量还行,收益也 OK。 # 杂感 似乎市场对于 MSTR 的担心,已经影响到 BTC 价格了。 之前在市场下跌的时候,SOL 跌幅往往是 BTC 跌幅的两倍。本周 SOL 却比 BTC 更加坚挺。😂 image
yfaming's avatar
yfaming 1 week ago
最近在了解 steel 项目 steel 是用 Rust 实现的 Scheme,兼容 R5RS 标准。它的特色在于可嵌入,适合给 Rust 项目做配置、脚本、插件、DSL 等等。Scheme 风格极简,但表达力强大,语言核心很小,天然适合这种嵌入式脚本语言场景。 通过 steel 可以很方便地在 Rust 和 Scheme 之间相互操作。既可以将 Rust 侧的类型、函数、值暴露给 Scheme 使用,也可以通过 Engine API 访问 Scheme 侧的值、函数等。 在 R5RS 之外,steel 提供了类似 Racket 的模块系统,并提供了比 R5RS 的 syntax-rules 更强大的 syntax-case 宏。 steel 项目还在早期,helix 编辑器已经在考虑用它来实现插件系统了。 就我个人来说,Rust 算是我最喜欢的语言,而自从去年认真学习 Racket/Scheme 后,也觉得越来越有意思。毕竟,哪个程序员能抵挡 Lisp 传奇的诱惑呢?通过 steel 将 Rust 和 Scheme 结合起来,简直挠到了最痒的地方。😂 我尝试着将 Rust 的 log crate 暴露给 Scheme。 首先将 `log` 的常用 API 包装了一下,建立一个 BuiltInModule 实例,并注册这些类型和函数,然后注册这个 BuiltInModule。这样,在 Scheme 侧就可以直接 require 这个模块并访问它的 API 了。 以这个模块为基础,我又用 Scheme 定义了一些 high-level 且 ergonomic 的 API,然后通过 `Engine::register_steel_module` 将这部分 Scheme 代码注册为模块。此后,Scheme 代码只需调用这个 high-level 模块的 API 即可。 通过这个小库,Scheme 中就可以比较自然地使用 Rust 日志库了。而这一切,只不过是 100+ 行的 Rust 代码,和 100- 行的 Scheme 代码而已。