文章摘要
FormerLab开发了一个仅限终端的Bluesky/AT协议客户端fortransky,使用Fortran语言编写,并搭配Rust原生解码器处理实时数据流。该项目展示了用传统Fortran语言实现现代社交协议客户端的创新尝试。
文章总结
Fortransky:基于Fortran的Bluesky终端客户端
项目概述
该项目开发了一个纯终端界面的Bluesky/AT协议客户端,采用Fortran语言编写,并集成Rust原生解码器用于处理relay-raw数据流。项目地址:https://github.com/FormerLab/fortransky
核心架构
- 前端:Fortran编写的TUI界面
- 中间层:通过C语言的libcurl桥接网络请求
- 数据处理:
- Rust静态库处理原始数据流(envelope → CAR → DAG-CBOR → JSONL)
- 提供
firehose_bridge_cli命令行工具
- 会话管理:自动保存至
~/.fortransky/session.json
构建要求
- 系统依赖(Ubuntu/Debian):
bash sudo apt install -y gfortran cmake pkg-config libcurl4-openssl-dev - Rust工具链(需≥1.70版本):
bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - Python依赖(仅relay-raw模式需要):
bash sudo pip install cbor2 websockets --break-system-packages
使用说明
- 登录:需使用Bluesky的应用密码
- 核心功能:
- 时间线浏览/作者订阅/帖子搜索/通知查看
- 支持发帖、回复、点赞、转推等交互
- 双模式数据流(jetstream/relay-raw)
技术特点
- 数据流模式:
- jetstream:低带宽WebSocket连接
- relay-raw:二进制CBOR数据流,通过Rust解码器转换
- 离线测试:内置合成数据fixture
- 已知限制:
- JSON解析器为轻量级实现
- relay-raw模式仅显示
app.bsky.feed.post类型 - 暂未实现DID到用户名的转换
版本更新
- v1.1:集成Rust原生解码器
- v1.0:新增社交互动功能
- v0.9:增强帖子语义解析
技术栈分布
- Fortran 70.5%
- Rust 17.3%
- Python 7.8%
- C 2.8%
该项目由FormerLab团队开发,通过混合编程技术实现了经典语言与现代协议的创新结合。
评论总结
以下是评论内容的总结:
对Fortran语言的讨论
- 正面评价:认为Fortran可读性强,适合科学计算
- "Fortran was first language I learnt...that looks more readable than a lot of modern languages" (zoom6628, worldmerge)
- 质疑选择:多次询问为何选择Fortran而非现代语言
- "out of curiosity, why fortran?" (cat-turner), "Why not Rust?" (grougnax)
- 正面评价:认为Fortran可读性强,适合科学计算
项目评价
- 积极反馈:赞赏项目创新性和实用性
- "The world is a better place for this app" (uberdru), "Brilliant in every possible way" (zoom6628)
- 小众价值:欣赏非主流技术栈的选择
- "The choice of Fortran is wild but that's what makes it fun" (lzhgusapp)
- 积极反馈:赞赏项目创新性和实用性
技术讨论延伸
- AT协议相关:询问非社交类应用
- "any other AT protocol apps that aren't derivatives of bluesky?" (hk1337)
- 浏览器指纹技术:讨论不同实现层级的差异
- "moving fingerprint spoofing...down to the native C++ level" (youhai)
- AT协议相关:询问非社交类应用
行业现象批评
- 对VC模式的批评:认为会导致产品质量下降
- "VCs enschitify it to get their coins back" (isodev)
- 对VC模式的批评:认为会导致产品质量下降
代码库请求
- 询问优秀Fortran代码示例
- "any FORTRAN codebases you feel are well designed?" (h4ch1)
- 询问优秀Fortran代码示例
其他
- 幽默对比:"fortran > cobol" (blundergoat)
- 发布建议:"throw this up on tangled.org" (nerdypepper)