# entrez-rs > A Rust wrapper for the Entrez API release: [![Crates.io][ci]][cl] [ci]: https://img.shields.io/crates/v/entrez-rs.svg [cl]: https://crates.io/crates/entrez-rs/ master: ![Build Status](https://travis-ci.org/Zenleaf/entrez-rs.svg?branch=master) This library helps you access the Entrez API using idiomatic Rust. It also provides tools to parse the XML results from Entrez. ## Installation Add the following to your Cargo.toml: ```toml [dependencies] entrez-rs = "0.1.4" ``` ## Usage ```rust use entrez_rs::eutils::{Eutils, ESearch, EFetch, DB}; use entrez_rs::parser::esearch::{ESearchResult}; use entrez_rs::parser::pubmed::{PubmedArticleSet}; use entrez_rs::errors::Error; fn main() -> Result<(), Error> { let xml = ESearch::new( DB::Pubmed, "eclampsia") .run()?; let parsed = ESearchResult::read(&xml); println!("{:#?}", &parsed? .id_list .ids); let pm_xml = EFetch::new( DB::Pubmed, vec!["33246200", "33243171"]) .run()?; let pm_parsed = PubmedArticleSet::read(&pm_xml); println!("{}", pm_parsed?.articles); Ok(()) } ``` Will add a walkthrough and tutorial of the API as soon as it reaches beta level. Inspired by Entrez Direct, Entrezpy and BioPython.