Skip to content

Server Side Sort#53

Draft
Iizuki wants to merge 3 commits intokeaz:mainfrom
Iizuki:server-side-sort
Draft

Server Side Sort#53
Iizuki wants to merge 3 commits intokeaz:mainfrom
Iizuki:server-side-sort

Conversation

@Iizuki
Copy link
Collaborator

@Iizuki Iizuki commented Feb 26, 2026

Adding support for the LDAP Server Side Sort extension defined in RFC 2891.

This is done by implementing a couple new controls, a corresponding adapter, and then exposing it in the public API. The API part requires still some thought. Open to suggestions!

I might try to upstream the low level bits to ldap3 crate at some point too, but lets just start here. This will be an invisible change if it does happen in the future.

fixes: #52

@Iizuki Iizuki self-assigned this Feb 26, 2026
@Iizuki
Copy link
Collaborator Author

Iizuki commented Feb 27, 2026

Okay here's my proposed API @keaz. Basically combining streaming_search_paged and the plain streaming_search into a streaming search that takes the page size and sort options optionally, and uses the corresponding Adapters as necessary. The plain streaming search was anyway just a search with empty adapter Vec under the hood. This way we avoid a lot of duplication.

I'm still going to sit on this for a while longer and test some more but feel free to share your thoughts on this design.

@Iizuki
Copy link
Collaborator Author

Iizuki commented Mar 3, 2026

Alternatively we could consider some kind of builder api. The streaming search is starting to have quite a bit of parameters.

Ok(Some(result_entry))
}
Some(ServerSideSortResponse { sort_result, .. }) => {
panic!(
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it ok to Panic, shall we return a error?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Server Side Sort

2 participants