- Upgrade to reqwest 0.12, which uses hyper 1.0
- Add
Version::audit_actions
[PR #69(#69) by @kornelski
- Fix typo in
Display
implementation (#59) - Add .page() method to crate query builder (#61)
- Add
recent_downloads
field to FullCrate (#63) - Derive more traits for
Author
(#64) - String representaton for Sort::Relevance (#65)
- Add rust_version field to Version (#67)
- Add
AsyncClient::with_http_client
constructor - Add
Crate::max_stable_version
field - Improve error reporting for JSON decoding errors
- Deprecate the
Crate::license field
(field is unused and always empty)
This version has quite a few breaking changes, mainly to clean up and future-proof the API.
- Get user data with
Client::user()
- Filter crates by category
- Filter crates by user_id
- Add
reverse_dependency_count()
to easily get the number of reverse deps - Allow retrieving single reverse dependency pages (
crate_reverse_dependencies_page
) - (async): Add a paginated Stream for listing crates (
AsyncClient::crates_stream()
)
-
Error
- make Error #[non_exhaustive]
- add Error::Api variant
- Rename NotFound => NotFoundError
- Rename PermissionDenied => PermissionDeniedError
- Remove InvalidHeaders variant (only relevant for client construction)
-
Types
- Rename
CratesResponse
=>CratesPage
- Rename
DownloadsMeta
=>CrateDownloadsMeta
- Rename
Downloads
=>CrateDownloads
- Don't expose internal types (
AuthorsResponse
) - Remove unused
Authors
/FullVersion
::users field
- Rename
-
General
- Properly handle API errors (Error::Api variant)
-
Querying
- rename
ListOptions
toCratesQuery
- make
CratesQuery
fields private (future proofing) - add
CratesQueryBuilder
for query construction
- rename
- Remove
all_crates
method, which should never have been there...
- Clean up the old pre-async futures code
- Don't auto-clone: futures are now tied to the client lifetime. Manually clone if you need the futures to be owned.
- Disable default features of chrono to have fewer dependencies.
- Deprecate the
VersionLinks.authors
field that was removed from the API Now will always be empty. Field will be removed in 0.8.
- Make
SyncClient
Send + Sync
#22
- Upgrade the async client to Futures 0.3 + reqwest 0.10 (reqwest 0.10 also respects standard http_proxy env variables)
- Removed
failure
dependency - Adhere to the crawler policy by requiring a custom user agent
- Add a simple rate limiter that restricts a client to one request in a given duration, and only a single concurrent request.
- Fix faulty condition check in SyncClient::all_crates
- Add 7 missing type fields for:
- Crate {recent_downloads, exact_match}
- CrateResponse {versions, keywords, categories}
- Version {crate_size, published_by}
- Make field optional: User {kind}
- Fix getting the reverse dependencies.
- Rearrange the received data for simpler manipulation.
- Add 3 new types:
- ReverseDependenciesAsReceived {dependencies, versions, meta}
- ReverseDependencies {dependencies, meta}
- ReverseDependency {crate_version, dependency}
- Fixed errors for version information due to the
id
field being removed from the API. PR #11
- Added
with_user_agent
method to client - Switch to 2018 edition, requiring rustc 1.31+
- Upgrade reqwest to 0.9
- Upgrade to tokio instead of tokio_core
- Add AsyncClient
- Switch from error_chain to failure
- Remove unused time dependency and loosen dependency constraints
- Add some newly introduced fields in the API
- Fix URL for the /summary endpoint
- Upgrade dependencies
- Add a simple test