2 releases
0.1.1 | Oct 9, 2024 |
---|---|
0.1.0 | Sep 2, 2024 |
#17 in #article
94KB
2K
SLoC
wikipedia-rs-wasm
Access wikipedia articles from Rust.
This is an alteration of the crate wikipedia
to make it able to compile to
wasm and should still work for other platforms.
The only downsides are anything returning an iterator actually returns a custom iterator that can use an async next which means no for loops and that your program will be all async but if it is going to be in wasm it probably was going to be anyway.
Also, the four tests that this crate fails the original crate also fails.
Example
use wikipedia_wasm::{Wikipedia, http};
#[tokio::main]
async fn main()
{
let wiki = Wikipedia::<http::default::Client>::default();
let page = wiki.page_from_title("World War II".to_string());
let content = page.get_content().await.unwrap();
assert!(content.starts_with("World War II or the Second World War (1 September 1939 – 2 September 1945)"));
}
Problem
The original crate used reqwest's blocking feature which cannot compile to wasm because of the internet's single thread nature or something like that.
Solution
- Make most functions async
- Make an async iterator
Original Crate by seppo0010
Dependencies
~0.7–13MB
~138K SLoC