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

feat(redis): redis adapter crate #402

Merged
merged 120 commits into from
Jan 12, 2025
Merged

feat(redis): redis adapter crate #402

merged 120 commits into from
Jan 12, 2025

Conversation

Totodore
Copy link
Owner

@Totodore Totodore commented Dec 20, 2024

Motivation

Add a redis adapter crate.
Close issue #396.

Solution

The redis adapter crate (named socketioxide-redis) will implement the socketioxide_core::CoreAdapter trait provided with the PR #395.
As there are many pub/sub redis implementation in the rust ecosystem, the crate will be agnostic from the implementation. A simple Driver trait will be available to implement custom redis client crates. By default socketioxide-redis will propose an implementation for :

Todo

  • E2E testing
  • Sharded pubsub for fred
  • Sharded pubsub for redis

* Remove Sync bound on adapter error
* Add an AdapterCtr trait to keep state
This will allow adapter implementors to use the `LocalAdapter` as a parent.
This will allow to share errors between nodes.
The parser error is also now a Boxed error in order to have multiple dyn possible implementations;
@Totodore Totodore linked an issue Jan 7, 2025 that may be closed by this pull request
@Totodore Totodore force-pushed the redis-adapter branch 2 times, most recently from 9ce4184 to 0211eb1 Compare January 8, 2025 15:57
@Totodore Totodore force-pushed the redis-adapter branch 2 times, most recently from 9ab798b to 9afdebb Compare January 9, 2025 16:19
@Totodore Totodore marked this pull request as ready for review January 9, 2025 16:40
@Totodore Totodore force-pushed the redis-adapter branch 5 times, most recently from a509ec9 to c483947 Compare January 12, 2025 15:00
@Totodore Totodore force-pushed the redis-adapter branch 2 times, most recently from d989ace to 33612ac Compare January 12, 2025 15:30
crates/socketioxide-redis/src/lib.rs Fixed Show fixed Hide fixed
crates/socketioxide-redis/src/lib.rs Fixed Show fixed Hide fixed
crates/socketioxide/src/io.rs Fixed Show fixed Hide fixed
crates/socketioxide/src/io.rs Fixed Show fixed Hide fixed
crates/socketioxide/src/io.rs Fixed Show fixed Hide fixed
crates/socketioxide/src/io.rs Fixed Show fixed Hide fixed
@Totodore Totodore force-pushed the redis-adapter branch 3 times, most recently from 951471d to d1d5a4d Compare January 12, 2025 17:54
@Totodore Totodore merged commit c21fe27 into feat-adapter-rework Jan 12, 2025
30 checks passed
@Totodore Totodore deleted the redis-adapter branch January 12, 2025 17:59
Totodore added a commit that referenced this pull request Jan 12, 2025
* feat(socketio): async adapter (#395)

* feat: improve `Adapter` error types for `broadcast` and `disconnect` methods (#408)

* feat(socketio/ns): improve `SocketEmitter` trait (#410)

* feat(core/adapter): pass filter to get_sids

* feat: add custom `Iterator` return for apply_opts fn

* chore(docs): add doc on async adapters (#411)

* feat(adapter): add a remote socket API (#412)

* feat(core): switch to a new type for server uid (#413)

* chore(deps): rm `__test_harness` && `tracing` feature flags.

* chore(deps): add fuzzing as cfg flag

* chore(ci): msrv

* chore(clippy): fix redundant import (#414)

* feat(core): improve local adapter perf (#415)

* test(e2e): provide e2e testing system for adapters (#422)

* test(e2e): provide e2e testing system for adapters

* fix(e2e/adapter): remove redis deps

* feat(socketio): check namespaces at insertion

* feat(redis): redis adapter crate (#402)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-redis-adapter Area related to redis-adapter C-Feature-request Request for a feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Redis adapter support for a redis cluster. Redis Adapter
1 participant