#esports #api #cs-go #api-bindings

hltv

A client to fetch and parse data from HLTV.org

5 unstable releases

0.3.2 Jun 27, 2022
0.3.1 Jun 24, 2022
0.3.0 Feb 25, 2022
0.2.0 Feb 16, 2022
0.1.0 Jan 18, 2022

#3 in #csgo

MIT/Apache

59KB
1.5K SLoC

HLTV client

Documentation | Crates.io | Repository

A crate for fetching and parsing esports data from HLTV.org.

This crate allows you to fetch and parse upcoming matches, results, event information, player performance. This crate uses async calls via reqwest and parses the HTML document with tl. This API mimics the way you discover information on HLTV. Summary pages like HLTV Matches contain less information in the HTML document than the detailed match-specific page.

Currently, the following API calls are supported:

  • crate::upcoming
  • crate::results
  • crate::get_match

Examples

The builders in hltv allow you to build a generic Request object with a Request::fetch method.

#[tokio::test]
async fn results() -> Result<(), Box<dyn Error>> {
    let req = hltv::results()
        .map(Map::Inferno)
        .team(4608) // Team Na'Vi
        .year(2016) 
        .event_type(EventTypeFilter::Lan)
        .build();

    let matches = req.fetch().await?; // Vec<MatchResult>
    Ok(())
}

Getting more detailed information

License

This project is dual-licensed under the MIT and Apache 2.0 license.

Dependencies

~5–17MB
~236K SLoC