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

robotstxt - 我用 Rust 重写了 Google 的 robotstxt 解析库

  •  
  •   Wichna ·
    folyd · 2020-05-24 15:32:58 +08:00 · 2485 次点击
    这是一个创建于 1404 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我把 Google 的 robotstxt 解析库 port 到 rust 了,并且用 FFI 的方式跑通了 C++的测试用例。感兴趣的朋友欢迎 star 🥳

    地址:https://github.com/Folyd/robotstxt

    robotstxt

    Crates.io Docs.rs Apache 2.0

    A native Rust port of Google's robots.txt parser and matcher C++ library.

    • Native Rust port, no third-part crate dependency
    • Preserves all behavior of original library
    • Consistent API with original library
    • 100% google original test passed

    Installation

    [dependencies]
    robotstxt = "0.2.0"
    

    Quick start

    use robotstxt::DefaultMatcher;
    
    let mut matcher = DefaultMatcher::default();
    let robots_body = "user-agent: FooBot\n\
                       disallow: /\n";
    assert_eq!(false, matcher.one_agent_allowed_by_robots(robots_body, "FooBot", "https://foo.com/"));
    
    7 条回复    2020-05-24 22:27:21 +08:00
    tikazyq
        1
    tikazyq  
       2020-05-24 16:16:35 +08:00
    只能 rust 用么?有不有 py 的接口?
    Wichna
        2
    Wichna  
    OP
       2020-05-24 18:11:41 +08:00
    @tikazyq Python 可以调用 rust 版本的库
    tulongtou
        3
    tulongtou  
       2020-05-24 18:25:03 +08:00
    @tikazyq 可以用 pyO3 封装成 python 扩展
    jimmyismagic
        4
    jimmyismagic  
       2020-05-24 19:24:08 +08:00
    @tikazyq 本来就是 c++的,为什么还要转换成 rust 后再转成 python
    leoleoasd
        5
    leoleoasd  
       2020-05-24 22:03:12 +08:00
    差点看成 floyd hhh
    Wichna
        6
    Wichna  
    OP
       2020-05-24 22:25:26 +08:00
    @leoleoasd 哈哈哈,本意就是 Floyd,注册域名的时候手抖打错了,当时没发现,然后将错就错沿用至今了
    Wichna
        7
    Wichna  
    OP
       2020-05-24 22:27:21 +08:00
    @jimmyismagic rust 版是我自己实现的一个库,其他 rust 项目就可以直接调用了。至于 python 项目想调用 C++还是 Rust 的版本都可以
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5432 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 08:34 · PVG 16:34 · LAX 01:34 · JFK 04:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.