23 releases
0.6.0 | Dec 15, 2023 |
---|---|
0.5.0 | Apr 3, 2023 |
0.5.0-alpha.3 | Feb 20, 2023 |
0.4.3 | Dec 1, 2022 |
0.2.2 | Jun 22, 2021 |
#1214 in Web programming
74 downloads per month
Used in 2 crates
56KB
1K
SLoC
mwapi
See the full documentation (docs for main).
License
mwapi is (C) 2021 Kunal Mehta, released under the GPL v3 or any later version, see COPYING for details.
lib.rs
:
A MediaWiki API client library.
mwapi
is a low-level library for the MediaWiki Action API.
If you intend to edit pages or want a higher-level interface, it's recommended to use mwbot
,
which builds on top of this crate.
Goals
- generic to fit any application, whether for interactive usage or writing a bot
- fully compatible with concurrent use cases
- turns MediaWiki errors into Rust errors for you
- logging (using the
tracing
crate) for visiblity into errors - follow all best practices
Quick start
let client = mwapi::Client::builder("https://en.wikipedia.org/w/api.php")
.set_user_agent("mwapi demo")
// Provide credentials for login:
// .set_botpassword("username", "password")
.build().await?;
let resp = client.get_value(&[
("action", "query"),
("prop", "info"),
("titles", "Taylor Swift"),
]).await?;
let info = resp["query"]["pages"][0].clone();
assert_eq!(info["ns"].as_u64().unwrap(), 0);
assert_eq!(info["title"].as_str().unwrap(), "Taylor Swift");
Functionality
- authentication, using OAuth2 (recommended) or BotPasswords
- error handling, transforming MediaWiki errors into Rust ones
- CSRF token handling with
post_with_token
- rate limiting and concurrency controls
- file uploads (needs
upload
feature)
See also
mwbot
provides a higher level interface to interacting with MediaWikimwapi_responses
is a macro to generate strict types for dynamic API queries
Contributing
mwapi
is a part of the mwbot-rs
project.
We're always looking for new contributors, please reach out
if you're interested!
Dependencies
~6–21MB
~303K SLoC