Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rust: complete implementation #1723

Open
alexandreyc opened this issue Apr 15, 2024 · 5 comments
Open

Rust: complete implementation #1723

alexandreyc opened this issue Apr 15, 2024 · 5 comments
Labels
Type: question Usage question

Comments

@alexandreyc
Copy link
Contributor

What would you like help with?

Hello world!

I've been working on a Rust implementation of ADBC which is available here: https://github.com/alexandreyc/adbc-rs

It's partially inspired by previous work done by @wjones127 in #446 and #416. I began by rebasing those PRs into #1496 but I wasn't entirely statisfied so I've restarted from scratch.

Currently, it includes:

  • Public abstract API to implement drivers in Rust
  • Driver manager for loading C drivers as Rust drivers
  • Driver exporter for building C drivers from Rust drivers
  • Integration tests against SQLite and PostgreSQL C/C++ drivers
  • Dummy driver implemented in Rust for testing purposes

If there is some interest, I would happily donate this implementation to the ASF by integrating it into this repo.

As discussed with @paleolimbot here I can split this into 3 or 4 PRs to ease the review.

@alexandreyc alexandreyc added the Type: question Usage question label Apr 15, 2024
@zeroshade
Copy link
Member

Hey @alexandreyc, thanks very much for the work here. There is definitely interest to have this donated to the ASF/this repo, the only drawback currently is that we don't have many active developers on this repo who know rust and would therefore be able to review the code. Ideally @wjones127 and/or @mbrobbel could chime in and review your PRs or others, but I still want to reiterate that there is significant interest in having full Rust bindings for ADBC and the driver manager so please feel free to move forward with filing the split up PRs and we'll see what we can do about getting the code reviewed and merged.

Thanks again!

CC @lidavidm

@lidavidm
Copy link
Member

We can ask @mbrobbel perhaps.

@alexandreyc
Copy link
Contributor Author

So I will go ahead by filling up the first PR with the public abstract API and the dummy driver!

lidavidm pushed a commit that referenced this issue Apr 22, 2024
…1725)

Hey!

As discussed in #1723, here is the first PR of the new complete Rust
implementation.

It includes:

- Traits and structs definitions for the public abstract API
- An implementation of a dummy driver for testing purposes (no test
currently because we need the driver manager and exporter to have
relevant tests)
- Constants from `adbc.h`

I put the code in `/rust2` but I can move it to `/rust` if you prefer.

CC @mbrobbel @paleolimbot @zeroshade @lidavidm
cocoa-xu pushed a commit to cocoa-xu/arrow-adbc that referenced this issue Apr 24, 2024
…pache#1725)

Hey!

As discussed in apache#1723, here is the first PR of the new complete Rust
implementation.

It includes:

- Traits and structs definitions for the public abstract API
- An implementation of a dummy driver for testing purposes (no test
currently because we need the driver manager and exporter to have
relevant tests)
- Constants from `adbc.h`

I put the code in `/rust2` but I can move it to `/rust` if you prefer.

CC @mbrobbel @paleolimbot @zeroshade @lidavidm
davidhcoe pushed a commit to davidhcoe/arrow-adbc that referenced this issue Apr 25, 2024
…pache#1725)

Hey!

As discussed in apache#1723, here is the first PR of the new complete Rust
implementation.

It includes:

- Traits and structs definitions for the public abstract API
- An implementation of a dummy driver for testing purposes (no test
currently because we need the driver manager and exporter to have
relevant tests)
- Constants from `adbc.h`

I put the code in `/rust2` but I can move it to `/rust` if you prefer.

CC @mbrobbel @paleolimbot @zeroshade @lidavidm
cocoa-xu pushed a commit to meowcraft-dev/arrow-adbc that referenced this issue May 8, 2024
…pache#1725)

Hey!

As discussed in apache#1723, here is the first PR of the new complete Rust
implementation.

It includes:

- Traits and structs definitions for the public abstract API
- An implementation of a dummy driver for testing purposes (no test
currently because we need the driver manager and exporter to have
relevant tests)
- Constants from `adbc.h`

I put the code in `/rust2` but I can move it to `/rust` if you prefer.

CC @mbrobbel @paleolimbot @zeroshade @lidavidm
@mkarbo
Copy link

mkarbo commented Jun 11, 2024

What would the natural next steps be?

@alexandreyc
Copy link
Contributor Author

The full implementation (abstract API, driver manager and driver exporter) is already merged.

There is also an open PR #1883 that contains integration tests.

I would say that the natural next step would be to implement a real driver! Maybe an ODBC bridge?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: question Usage question
Projects
None yet
Development

No branches or pull requests

4 participants