Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Synchronous client implementation #130

Merged
1 commit merged into from
Dec 8, 2020
Merged

Synchronous client implementation #130

1 commit merged into from
Dec 8, 2020

Conversation

ghost
Copy link

@ghost ghost commented Dec 1, 2020

Previously, the core client implementation was written in async style, and then the sync API was layered on top of it. Async Rust has non-negligible costs when it comes to compilation times and code maintenance. Given how much the async library ecosystem is in still in flux (and for how long it has been), maintaining crates outside the scope of this NATS client and constantly upgrading dependencies is becoming untenable.

This PR simplifies the core client implementation so that it's written in traditional sync style. The async API is presently gone but I will soon add it in a separate PR - it'll just be an adapter on top of the sync client. This way users of sync Rust don't have to bring in numerous async dependencies (improving compilation times) and code maintenance will be simpler.

@spacejam
Copy link
Contributor

spacejam commented Dec 1, 2020

This makes me so happy

tests/reconnection.rs Outdated Show resolved Hide resolved
@ghost
Copy link
Author

ghost commented Dec 8, 2020

The tests are now passing. Windows has been re-enabled in CI. I've squashed commits and - merging!

@ghost ghost merged commit 714df02 into master Dec 8, 2020
@ghost ghost deleted the not-async branch December 8, 2020 12:06
This pull request was closed.
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.

1 participant