Skip to content

Commit

Permalink
doc: Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
achimnol authored Feb 18, 2024
1 parent 1cf13a4 commit 2350137
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,37 @@
Redis over QUIC with improved connection management


## Building the proxy
## Rationale

Curently, the official Redis client for PYthon, `redis-py` has many issues (ref: redis/redis-py#3008) regarding connection, retry, and timeout management.
Most problems are highlghy coupled to the API design, and it is hard to fix them without breaking the backward compatibility.
When it comes to HA configurations using sentinels, it is very difficult to distinguish the different stages of the connection setup process.

The target of this project is to:

* Offload the connection pool management to QUIC by adopting light-weight streams bound to local UNIX socket connections of the Redis server.
- Make Redis client connections volatile, transient, light-weight QUIC streams.
- Split the fault isolation domain of networking into the localhost of Redis server and the QUIC remote networking, instead of coupling them together as in the conventional TCP-based connection pooling.
* Achieve potentiall higher performance by eliminating handshake overheads when using secure TLS connections via public networks.
* Provide a working, ready-to-try client implementation for potential future QUIC adoption in the Redis project ([redis/redis#6301](https://github.com/redis/redis/issues/6301)).


## Development

### Editable installation

```sh
pip install -U -e '.[lint,typecheck,test,build,docs]'
```

### Building the reverse-proxy (QUIC to UNIX/TCP)

```sh
cd src/qedis-proxy
go build
```

## Testing
### Testing

**Terminal 1:**
```sh
Expand Down

0 comments on commit 2350137

Please sign in to comment.