Skip to content

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
@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