I'm not sure I understand what you mean with "a wrapper of standards like ADBC and ODBC".
Do you mean it would use ADBC/ODBC for implementation of the connector, but still expose its API as Rust traits? Or do you mean it would replace its API with ADBC and remain using Rust implementation of database clients? In this scenario, the C ABI of this library could be used from other languages, as you describe. --- > This also reduces the chances of you providing things that are heavily biased > towards the way the databases you supported initially work. Oh yes - that I have found to be the case when implementing connectors. It is hard to be unbiased, since you don't know the full extent of all of the features of different database client you will eventually support. --- I've tried looking at the ADBC defines for Rust, but I can only find a draft of the API. Are there any implementations of ADBC in Rust I could use for reference? On Fri, Mar 15, 2024 at 12:19 AM Felipe Oliveira Carvalho <felipe...@gmail.com> wrote: > > Two comments: > > —— > > Since this library is analogous to things like ADBC, ODBC, and JDBC, it’s > more of a “driver” than a “connector”. This might make your life easier > when explaining what it does. > > It’s not a black and white thing, but “connector” might imply networking to > some people. > > I believe you delegate the networking bits of interacting with PostgreSQL > to a Rust connector. > > —— > > This library would be more interesting if it could be a wrapper of > language-agnostic database standards like ADBC and ODBC. The Rust compiler > can call and expose functions that follow the C ABI — the only true code > interface standard available on every OS/Architecture pair. > > This would mean that any database that exposes ADBC/ODBC can be used from > your driver. You would still offer a rich Rust interface, but everything > would translate to well-defined operations that vendors implement. This > also reduces the chances of you providing things that are heavily biased > towards the way the databases you supported initially work. > > — > Felipe > > > > On Tue, 12 Mar 2024 at 09:28 Aljaž Eržen <al...@erzen.si> wrote: > > > Hello good folks of Apache Arrow! I come looking for feedback on my > > Rust crate connector_arrow [1], which is an Arrow database client that > > is able to connect to multiple databases over their native protocols. > > > > It is very similar to ADBC, but better adapted for the Rust ecosystem, > > as it can be compiled with plain cargo and uses established crates for > > connecting to the databases. > > > > The main feedback I need is the API exposed by the library [2]. I've > > tried to keep it minimal and it turned out much more concise than the > > api exposed by ADBC. Have I missed important features? > > > > Aljaž Mur Eržen > > > > [1]: https://docs.rs/connector_arrow/latest/connector_arrow/ > > [2]: > > https://github.com/aljazerzen/connector_arrow/blob/main/connector_arrow/src/api.rs > > -- Aljaž Mur Eržen