Hacker News 中文摘要

RSS订阅

显示HN:我们用Fortran编写了一个仅限终端的Bluesky/AT Proto客户端 -- Show HN: We built a terminal-only Bluesky / AT Proto client written in Fortran

文章摘要

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

构建要求

  1. 系统依赖(Ubuntu/Debian): bash sudo apt install -y gfortran cmake pkg-config libcurl4-openssl-dev
  2. Rust工具链(需≥1.70版本): bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  3. 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团队开发,通过混合编程技术实现了经典语言与现代协议的创新结合。

评论总结

以下是评论内容的总结:

  1. 对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)
  2. 项目评价

    • 积极反馈:赞赏项目创新性和实用性
      • "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)
  3. 技术讨论延伸

    • AT协议相关:询问非社交类应用
      • "any other AT protocol apps that aren't derivatives of bluesky?" (hk1337)
    • 浏览器指纹技术:讨论不同实现层级的差异
      • "moving fingerprint spoofing...down to the native C++ level" (youhai)
  4. 行业现象批评

    • 对VC模式的批评:认为会导致产品质量下降
      • "VCs enschitify it to get their coins back" (isodev)
  5. 代码库请求

    • 询问优秀Fortran代码示例
      • "any FORTRAN codebases you feel are well designed?" (h4ch1)
  6. 其他

    • 幽默对比:"fortran > cobol" (blundergoat)
    • 发布建议:"throw this up on tangled.org" (nerdypepper)