V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xlsepiphone
V2EX  ›  分享创造

TS 写的 bencode 编解码器,可以命令行使用。

  •  
  •   xlsepiphone · 2023-07-29 13:14:35 +08:00 · 1035 次点击
    这是一个创建于 513 天前的主题,其中的信息可能已经有所发展或是发生改变。

    闲来没事,想学学 BT 协议,然后就稀里糊涂的开始写 bencode 练练手。

    最开始想使用流来处理字节,省内存,后来发现 node 的流真的太难用了,参考我上个帖子。。。

    昨天还是一股脑的把数据读到内存里处理了,一般用 bencode 编码的种子也不会太大,我看到过最大的也不超过 10MB 。

    node 对于字节的处理真是不友好,可能是因为 JS 没有字节这个基本数据类型,所以 node 里面有 Buffer 、ArrayBuffer 、Unit8Array 。。。让人傻傻分不清

    GitHub: node-bencode

    3 条回复    2023-07-29 14:07:11 +08:00
    hxsf
        1
    hxsf  
       2023-07-29 13:35:01 +08:00 via iPhone
    uint8array 不就是你要的东西吗
    xlsepiphone
        2
    xlsepiphone  
    OP
       2023-07-29 13:38:18 +08:00
    @hxsf #1 Buffer 是 Node 特有的,Unit8Array 是 web 标准,我只是觉得二进制这块有点乱。
    Leviathann
        3
    Leviathann  
       2023-07-29 14:07:11 +08:00
    之前为了实现产品的某个 sb 需求搞了一下文件的序列化,发现 dom 环境下除了用异步的 fetch ,居然没有可以直接把 base64 转文件的方法,所以还得手写从 string 到 uint8array 的转换
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:14 · PVG 05:14 · LAX 13:14 · JFK 16:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.