-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
35 changed files
with
2,492 additions
and
1,346 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
- **1.0.0:** | ||
- Replace `#[async_trait]` with partially stabilized `async trait` using | ||
RPITIT. Set MSRV to 1.75. | ||
- `PageTurner` doesn't require to return `Vec<PageItem>` anymore. `type | ||
PageItem` is renamed into `type PageItems` and a user can specify a full | ||
return type with it like `type PageItems = HashMap<String, Vec<Object>>`; | ||
- `PagesStream` is now a `Stream` extension trait and not a separate type. | ||
- Add extra `PageItems`, `PageError`, `PageTurnerFuture` type aliases, | ||
rename `PageTurnerOutput` into `TurnedPageResult`. | ||
- Implement more optimal sliding window request scheduling strategy for | ||
`pages_ahead` and `pages_ahead_unordered` streams. Details: | ||
<https://github.com/a1akris/page-turner/issues/2>. `into_pages_ahead` and | ||
`into_pages_ahead_unordered` now require `Clone` explicitly and don't use | ||
`Arc` under the hood. | ||
- Internal refactorings, module restructurings, and a huge simplification | ||
of internal streams implementation. All copy-paste is gone! | ||
- Introduce different page turner flavors with relaxed constraints behind | ||
feature flags for use in singlethreaded environments. `local` doesn't | ||
require anything to be `Send` and `mutable` allows to mutate client | ||
during querying. Bring back `async_trait` version of page turner behind | ||
the `dynamic` feature flag. | ||
- Extra tests that check that everything has correct constraints and is | ||
send/object safe where required. | ||
- README, CHANGELOG and documentation overhauls. | ||
|
||
- **0.8.2:** | ||
- Fix typo in docs. | ||
|
||
- **0.8.1:** | ||
- Bugfix in internal chunking iterator that yilded empty chunks for | ||
`chunk_size = 1` in previous version. (0.8.0 yanked) | ||
|
||
- **0.8.0:** | ||
- Introduce [`RequestAhead`] and [`PageTurner::pages_ahead`], | ||
[`PageTurner::pages_ahead_unordered`] for concurrent page querying | ||
|
||
- **0.7.0:** | ||
- Hotfix lifetime bounds in [`PagesStream`] for `T` and `E`. (0.6.0 yanked) | ||
|
||
- **0.6.0:** | ||
- Initial public release | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,16 @@ | ||
[package] | ||
name = "page-turner" | ||
version = "0.8.2" | ||
version = "1.0.0" | ||
authors = ["a1akris <[email protected]>"] | ||
edition = "2021" | ||
license = "MIT OR Apache-2.0" | ||
rust-version = "1.75" | ||
|
||
description = "A generic abstraction of APIs with pagination" | ||
readme = "README.md" | ||
repository = "https://github.com/a1akris/page-turner" | ||
documentation = "https://docs.rs/page-turner" | ||
keywords = ["pagination", "paginated", "api", "pages", "page"] | ||
keywords = ["pagination", "paginated", "pageturner", "pages", "page-turner"] | ||
categories = ["rust-patterns", "asynchronous", "web-programming", "network-programming", "concurrency"] | ||
|
||
exclude = [ | ||
|
@@ -18,9 +19,20 @@ exclude = [ | |
|
||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||
|
||
[features] | ||
default = ["mt"] | ||
local = [] | ||
mt = [] | ||
mutable = ["local"] | ||
dynamic = ["mt", "async-trait"] | ||
|
||
[dependencies] | ||
async-trait = "0.1.57" | ||
futures = { version = "0.3.24", default_features = false, features = ["std"] } | ||
async-trait = { version = "0.1.77", optional = true } | ||
futures = { version = "0.3.30", default_features = false, features = ["std"] } | ||
|
||
[dev-dependencies] | ||
tokio = { version = "1", features = ["test-util", "macros", "rt"] } | ||
tokio = { version = "1", features = ["test-util", "macros", "rt-multi-thread"] } | ||
|
||
[package.metadata.docs.rs] | ||
all-features = true | ||
rustdoc-args = ["--cfg", "docsrs"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.