Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* saving work so far * maybe github workflow * rm entrypoint maybe * moving github workflow to trigger, maybe * trying workflow redis config again * tests use env url * small refactor -> generic execute * mv tests, crate docs * more stuffs * better readme * append and get * add todo markdown list * updating todo list checkboxes * fixing the pop mess and adding decr * resolve decr * cursor for copy, lpushx tests * note for lpushx * whoa, no cursor * use err * starting hash commands * ups * hsetnx too * to do updates * add echo * echo done * grouping commands, clearer priority * drop bit field priority * adding decrby * check off decrby * hexists, hget, hgetall, hkeys, hmget * todo completion for h stuff * todo formatting * mset and msetnx * todo doc updates * hincrby, hstrlen, hvals * more implementation, lrem, lset, ltrim, linsert, lindex * todo updates * add missing link * removing unused test * shape code, io feature * more prep for ship
- Loading branch information
Showing
16 changed files
with
3,009 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: gh.build | ||
on: [push] | ||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
services: | ||
redis: | ||
image: redis | ||
ports: | ||
- 6379:6379 | ||
options: --entrypoint redis-server | ||
steps: | ||
- uses: actions/checkout@v1 | ||
- name: install-beta | ||
run: rustup toolchain install beta | ||
- name: use-beta | ||
run: rustup default beta | ||
- name: build | ||
run: cargo build | ||
- name: test | ||
run: cargo test --features kramer-io | ||
env: | ||
REDIS_HOST: localhost | ||
REDIS_PORT: ${{ job.services.redis.ports[6379] }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
/target | ||
**/*.rs.bk | ||
Cargo.lock |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,278 @@ | ||
# Milestone: 0.1.0 | ||
|
||
| Command | Introduced | Use | | ||
| :--- | :--- | :-- | | ||
| `append` | [`9c23bf7`] | `Command::Strings(StringCommand::Append("seinfeld", "kramer")))` | | ||
| `blpop` | [`d27df86`] | `ListCommand::Pop(Side::Left, "seinfeld", Some((None, 10)))` | | ||
| `brpop` | [`d27df86`] | `ListCommand::Pop(Side::Right, "seinfeld", Some((None, 10)))` | | ||
| `decr` | [`d27df86`] | `Command::Decr("seinfeld", 1)` | | ||
| `decrby` | [`d51737e`] | `Command::Decr("seinfeld", 2)` | | ||
| `del` | [`1a15a9e`] | `Command::Del(Arity::One("seinfeld"))` | | ||
| `echo` | [`a851137`] | `Command::Echo("seinfeld")` | | ||
| `exists` | [`1a15a9e`] | `Command::Exists("seinfeld")` | | ||
| `get` | [`9c23bf7`] | `StringCommand::Get(Arity::One("seinfeld"))` | | ||
| `hdel` | [`cd15162`] | `HashCommand::Del("seinfeld", "name", None))` | | ||
| `hexists` | [`220d748`] | `HashCommand::Exists("seinfeld", "name"))` | | ||
| `hget` | [`220d748`] | `HashCommand::Get("seinfeld", Some(Arity::One("name"))))` | | ||
| `hgetall` | [`220d748`] | `HashCOmmand::Get("Seinfeld", None))` | | ||
| `hincrby` | [`9ccd5fe`] | `HashCommand::Incr("counters", "episodes", 10)` | | ||
| `hkeys` | [`220d748`] | `HashCommand::Keys("seinfeld")` | | ||
| `hlen` | [`220d748`] | `HashCommand::Len("seinfeld")` | | ||
| `hmget` | [`220d748`] | `HashCommand::Get("seinfeld", Some(Arity::Many(vec!["name", "friend"])))` | | ||
| `hset` | [`9e08436`] | `HashCommand::Set("seinfeld", Arity::One(("name", "kramer")), Insertion::Always)` | | ||
| `hsetnx` | [`9e08436`] | `HashCommand::Set("seinfeld", Arity::One(("name", "kramer")), Insertion::IfNotExists)` | | ||
| `hstrlen` | [`9ccd5fe`] | `HashCommand::StrLen("seinfeld", "name")` | | ||
| `hvals` | [`9ccd5fe`] | `HashCommand::Vals("seinfeld")` | | ||
| `incr` | [`ea58902`] | `StringCommand::Incr("episodes", 1)` | | ||
| `incrby` | [`ea58902`] | `StringCommand::Incr("episodes", 10)` | | ||
| `keys` | [`1a15a9e`] | `Command::Keys("*")` | | ||
| `lindex` | [`ea58902`] | `Command::List(ListCommand::Index("episodes", 1))` | | ||
| `linsert` | [`ea58902`] | `Command::List(ListCommand::Insert("episodes", Side::Left, "10", "100"))` | | ||
| `llen` | [`1a15a9e`] | `ListCommand::Len(key))` | | ||
| `lpop` | [`1a15a9e`] | `ListCommand::Pop(Side::Left, key, None))` | | ||
| `lpush` | [`1a15a9e`] | `ListCommand::Push((Side::Left, Insertion::Always), key, Arity::One("kramer")))` | | ||
| `lpushx` | [`7b4f430`] | `ListCommand::Push((Side::Left, Insertion::IfExists), key, Arity::One("kramer")))` | | ||
| `lrange` | [`1a15a9e`] | `ListCommand::Range("seinfeld", 0, -1)` | | ||
| `lrem` | [`ea58902`] | `Command::List(ListCommand::Rem("episodes", "10", 100))` | | ||
| `lset` | [`ea58902`] | `Command::List(ListCommand::Set("episodes", 1, "pilot"))` | | ||
| `ltrim` | [`ea58902`] | `Command::List(ListCommand::Trim("episodes", 0, 10))` | | ||
| `mget` | [`1a15a9e`] | `StringCommand::Get(Arity::Many(vec!["seinfeld", "peaky"]))` | | ||
| `mset` | [`8e6cab7`] | `StringCommand::Set(Arity::Many(vec![("name", "jerry")]), None, Insertion::Always)` | | ||
| `mset` | [`8e6cab7`] | `StringCommand::Set(Arity::Many(vec![("name", "jerry")]), None, Insertion::IfNotExists)` | | ||
| `rpop` | [`1a15a9e`] | `ListCommand::Pop(Side::Right, key, None)` | | ||
| `rpush` | [`1a15a9e`] | `ListCommand::Push((Side::Right, Insertion::Always), key, Arity::One("kramer")))` | | ||
| `rpushx` | [`1a15a9e`] | `ListCommand::Push((Side::Right, Insertion::IfExists), key, Arity::One("kramer")))` | | ||
| `set` | [`1a15a9e`] | `StringCommand::Set(Arity::One((key, "kramer")), None, Insertion::Always)` | | ||
|
||
# Milestone: 0.2.0 | ||
|
||
- [ ] auth | ||
- [ ] bitcount | ||
- [ ] bitfield | ||
- [ ] bitop | ||
- [ ] bitpos | ||
- [ ] bgrewriteaof | ||
- [ ] bgsave | ||
- [ ] brpoplpush | ||
- [ ] bzpopmin | ||
- [ ] bzpopmax | ||
- [ ] discard | ||
- [ ] dump | ||
- [ ] eval | ||
- [ ] evalsha | ||
- [ ] exec | ||
- [ ] expire | ||
- [ ] expireat | ||
- [ ] flushall | ||
- [ ] flushdb | ||
- [ ] geoadd | ||
- [ ] geohash | ||
- [ ] geopos | ||
- [ ] geodist | ||
- [ ] georadius | ||
- [ ] georadiusbymember | ||
- [ ] getbit | ||
- [ ] getrange | ||
- [ ] getset | ||
- [ ] hincrbyfloat | ||
- [ ] incrbyfloat | ||
- [ ] info | ||
- [ ] lastsave | ||
- [ ] migrate | ||
- [ ] move | ||
- [ ] multi | ||
- [ ] object | ||
- [ ] persist | ||
- [ ] pexpire | ||
- [ ] pexpireat | ||
- [ ] pfadd | ||
- [ ] pfcount | ||
- [ ] pfmerge | ||
- [ ] ping | ||
- [ ] psetex | ||
- [ ] psubscribe | ||
- [ ] pubsub | ||
- [ ] pttl | ||
- [ ] publish | ||
- [ ] punsubscribe | ||
- [ ] quit | ||
- [ ] randomkey | ||
- [ ] readonly | ||
- [ ] readwrite | ||
- [ ] rename | ||
- [ ] renamenx | ||
- [ ] restore | ||
- [ ] role | ||
- [ ] rpoplpush | ||
- [ ] sadd | ||
- [ ] save | ||
- [ ] scard | ||
- [ ] sdiff | ||
- [ ] sdiffstore | ||
- [ ] select | ||
- [ ] setbit | ||
- [ ] setrange | ||
- [ ] shutdown | ||
- [ ] sinter | ||
- [ ] sinterstore | ||
- [ ] sismember | ||
- [ ] slaveof | ||
- [ ] replicaof | ||
- [ ] slowlog | ||
- [ ] smembers | ||
- [ ] smove | ||
- [ ] sort | ||
- [ ] spop | ||
- [ ] srandmember | ||
- [ ] srem | ||
- [ ] strlen | ||
- [ ] subscribe | ||
- [ ] sunion | ||
- [ ] sunionstore | ||
- [ ] swapdb | ||
- [ ] sync | ||
- [ ] psync | ||
- [ ] time | ||
- [ ] touch | ||
- [ ] ttl | ||
- [ ] type | ||
- [ ] unsubscribe | ||
- [ ] unlink | ||
- [ ] unwatch | ||
- [ ] wait | ||
- [ ] watch | ||
- [ ] zadd | ||
- [ ] zcard | ||
- [ ] zcount | ||
- [ ] zincrby | ||
- [ ] zinterstore | ||
- [ ] zlexcount | ||
- [ ] zpopmax | ||
- [ ] zpopmin | ||
- [ ] zrange | ||
- [ ] zrangebylex | ||
- [ ] zrevrangebylex | ||
- [ ] zrangebyscore | ||
- [ ] zrank | ||
- [ ] zrem | ||
- [ ] zremrangebylex | ||
- [ ] zremrangebyrank | ||
- [ ] zremrangebyscore | ||
- [ ] zrevrange | ||
- [ ] zrevrangebyscore | ||
- [ ] zrevrank | ||
- [ ] zscore | ||
- [ ] zunionstore | ||
- [ ] scan | ||
- [ ] sscan | ||
- [ ] hscan | ||
- [ ] zscan | ||
- [ ] xinfo | ||
- [ ] xadd | ||
- [ ] xtrim | ||
- [ ] xdel | ||
- [ ] xrange | ||
- [ ] xrevrange | ||
- [ ] xlen | ||
- [ ] xread | ||
- [ ] xgroup | ||
- [ ] xreadgroup | ||
- [ ] xack | ||
- [ ] xclaim | ||
- [ ] xpending | ||
|
||
# Milestone: 0.X.0 | ||
|
||
The following commands are not part of the roadmap for this library. | ||
|
||
- [ ] command | ||
- [ ] command count | ||
- [ ] command getkeys | ||
- [ ] command info | ||
- [ ] config get | ||
- [ ] config rewrite | ||
- [ ] config set | ||
- [ ] config resetstat | ||
- [ ] dbsize | ||
- [ ] debug object | ||
- [ ] debug segfault | ||
- [ ] client id | ||
- [ ] client kill | ||
- [ ] client list | ||
- [ ] client getname | ||
- [ ] client pause | ||
- [ ] client reply | ||
- [ ] client setname | ||
- [ ] client unblock | ||
- [ ] cluster addslots | ||
- [ ] cluster bumpepoch | ||
- [ ] cluster count-failure-reports | ||
- [ ] cluster countkeysinslot | ||
- [ ] cluster delslots | ||
- [ ] cluster failover | ||
- [ ] cluster flushslots | ||
- [ ] cluster forget | ||
- [ ] cluster getkeysinslot | ||
- [ ] cluster info | ||
- [ ] cluster keyslot | ||
- [ ] cluster meet | ||
- [ ] cluster myid | ||
- [ ] cluster nodes | ||
- [ ] cluster replicate | ||
- [ ] cluster reset | ||
- [ ] cluster saveconfig | ||
- [ ] cluster set-config-epoch | ||
- [ ] cluster setslot | ||
- [ ] cluster slaves | ||
- [ ] cluster replicas | ||
- [ ] cluster slots | ||
- [ ] script debug | ||
- [ ] script exists | ||
- [ ] script flush | ||
- [ ] script kill | ||
- [ ] script load | ||
- [ ] latency doctor | ||
- [ ] latency graph | ||
- [ ] latency history | ||
- [ ] latency latest | ||
- [ ] latency reset | ||
- [ ] latency help | ||
- [ ] lolwut | ||
- [ ] memory doctor | ||
- [ ] memory help | ||
- [ ] memory malloc-stats | ||
- [ ] memory purge | ||
- [ ] memory stats | ||
- [ ] memory usage | ||
- [ ] module list | ||
- [ ] module load | ||
- [ ] module unload | ||
- [ ] monitor | ||
|
||
# Exceptions | ||
|
||
- [ ] `setex` - unlikely to implement; can be accomplished with `set` | ||
- [ ] `setnx` - unlikely to implement; can be accomplished with `set` | ||
- [ ] `hmset` - `hset` can do many | ||
|
||
> This list was generated by running the following script in the chrome developer tools on the [command][command-li] | ||
> list page of the official redis website: | ||
> | ||
> var items = Array.from(document.querySelectorAll('#commands li[data-name]')); | ||
> copy(items.map(li => li.getAttribute('data-name')).join('\n')) | ||
[command-li]: https://redis.io/commands | ||
|
||
|
||
[`1a15a9e`]: https://github.com/sizethree/kramer/commit/1a15a9eb89f0c5a23bb4ad9e52f0082997e017a0 | ||
[`220d748`]: https://github.com/sizethree/kramer/commit/220d748 | ||
[`7b4f430`]: https://github.com/sizethree/kramer/commit/7b4f430 | ||
[`8e6cab7`]: https://github.com/sizethree/kramer/commit/8e6cab7076527f00efc59d39b3c5258e6cd3f404 | ||
[`9c23bf7`]: https://github.com/sizethree/kramer/commit/9c23bf7a4282a4803b96a41824d47a60b3c176b5 | ||
[`9ccd5fe`]: https://github.com/sizethree/kramer/commit/9ccd5fe6f17aa6a1839fafb75859ff1b3ad3a49d | ||
[`9e08436`]: https://github.com/sizethree/kramer/commit/9e08436 | ||
[`a851137`]: https://github.com/sizethree/kramer/commit/a8511379c77b52f78e85e3f2d5a4dd94ef1cd84e | ||
[`cd15162`]: https://github.com/sizethree/kramer/commit/cd1516296c31707bb9bc5878b3b323b1629ba692 | ||
[`d27df86`]: https://github.com/sizethree/kramer/commit/d27df866b9c62ce47b18980354b3fc145e0fb3a2 | ||
[`d51737e`]: https://github.com/sizethree/kramer/commit/d51737e2911d883bf26d1659fb3b6be6057594fb | ||
[`ea58902`]: https://github.com/sizethree/kramer/commit/ea58902003a13a951d60d37b7b7705082af6ee36 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
## Contributing | ||
|
||
This project is entirely open to help from the software community. | ||
All pull requests and issues are welcome and be considered honestly. |
Oops, something went wrong.