geldata / geldata/gel-rust

Published client To Do

Open
#32 18 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
231
Forks
30
PR merge metrics
No merged PRs in 30d

Description

Before publishing client crate on crates.io we need:
1. [x] Ensure that error reporting is adequate and errors can be handled apropriately. Probably get rid of `anyhow::Error`. If even if we leave `anyhow`, we should ensure that it's easy to find out if error is recoverable, if it's network error, etc.
2. [ ] Figure out if it makes sense to move query methods into a trait (async traits are kinda complex, though)
3. [x] Review list of dependencies, currently there are too much of them
1. [x] Also async-std should not require `unstable` feature
2. [x] Some of them, like `whoami` should be moved under a feature gate
4. [ ] Review public exports, hide unneeded things and restructure modules if needed
1. [ ] Move `Sequence` under a feature gate (e.g. `unstable`)
5. [ ] Query arguments refactoring
1. [x] `QueryArgs` trait
2. [ ] `QueryArg` trait
3. [ ] `QueryArg` implementation for all basic types
4. [ ] `QueryArgs` implementation for tuple and container types
5. [ ] `derive(QueryArgs)`
6. [x] Create a Datetime struct to represent edgedb's native datetime type #42
7. [ ] Implement most of the RFC1004
1. [ ] Reconnecting connection
2. [ ] Connection pool
3. [ ] Transactions
4. [ ] Retriable transactions
5. [ ] Transaction configuration/Retry options
6. [ ] Capabilities

These tasks can be postponed:
1. [ ] Look into supporting multiple runtimes #49
2. [ ] Ensure that nothing is re-exported from `edgedb-protocol`, so that we can make breaking changes in latter without disturbing users
1. [ ] Figure out what to do with `Queryable` trait
3. [ ] Take a look if we want to get rid of `snafu` for errors (used only internally)

Previous discussion in edgedb/edgedb-cli#112, #30

In the meantime, anyone can use git version at their own risk (API will probably break every now and then)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.