Skip to content

Rewrite#30

Draft
Thomasdezeeuw wants to merge 247 commits intomasterfrom
rewrite
Draft

Rewrite#30
Thomasdezeeuw wants to merge 247 commits intomasterfrom
rewrite

Conversation

@Thomasdezeeuw
Copy link
Owner

Work-in-progress.

Complete rewrite.
We'll add them back once we need them.
Simple hashing implementation that only works for Keys.
Don't require the storage::Read trait to be implemented and return the
Key as return value for add_blob.
It contains the Protocol trait which defines how to interact with
connected clients. With this is should be easier to support multiple
protocol, such as HTTP and RESP, within the same implementation.
Want to use a published version at some point.
We'll add them back later.
Easy way to provide some more context to an error.
Contains a single actor that will control interaction between a
protocol, i.e. a user, and the storage.
And add these to the controller configuration.
So we can add submodules.
We can put it in implementation, rather then type definitions.
Same as FromStr::from_str, but then for bytes.
Splits the Error type into two: RequestError and ResponseError.
Furthermore this adds the IsFatal trait requirement to RequestError to
determine whether or not an error is fatal. For example an I/O error
which can't be recovered from versus a protocol error which can be
recovered from.

Also add reply_to_error to send a reply for an error.
Also introduces a new controller::Error.
Will need to make this asynchronous.
Well the reading side at least.

This implements the RESP version 2, used by Redis, as a Protocol
implementation.
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