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

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

  •  
  •   Wichna · 50 天前 · 1616 次点击
    这是一个创建于 50 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我把 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   50 天前
    只能 rust 用么?有不有 py 的接口?
    Wichna
        2
    Wichna   50 天前
    @tikazyq Python 可以调用 rust 版本的库
    tulongtou
        3
    tulongtou   50 天前
    @tikazyq 可以用 pyO3 封装成 python 扩展
    jimmyismagic
        4
    jimmyismagic   50 天前
    @tikazyq 本来就是 c++的,为什么还要转换成 rust 后再转成 python
    leoleoasd
        5
    leoleoasd   50 天前
    差点看成 floyd hhh
    Wichna
        6
    Wichna   50 天前
    @leoleoasd 哈哈哈,本意就是 Floyd,注册域名的时候手抖打错了,当时没发现,然后将错就错沿用至今了
    Wichna
        7
    Wichna   50 天前
    @jimmyismagic rust 版是我自己实现的一个库,其他 rust 项目就可以直接调用了。至于 python 项目想调用 C++还是 Rust 的版本都可以
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1172 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 18:48 · PVG 02:48 · LAX 11:48 · JFK 14:48
    ♥ Do have faith in what you're doing.