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

feat: initial implementation #1

Open
wants to merge 57 commits into
base: main
Choose a base branch
from

Conversation

halvardssm
Copy link
Owner

@halvardssm halvardssm commented Mar 11, 2024

Status: semi-stable (can be changed if community reaches other consensus)
JSR: https://jsr.io/@halvardm/sqlx/versions

Intro

Having a standardized interface for relational databases in JavaScript and TypeScript has been brought up every now and then in the Deno DB community, but as Deno was still in its early days, and the community was young, it was never started. However, as Deno is becoming more stable, supports NPM and Node, and we got JSR, it is time to consolidate and create a standard for relational (sql-based) database clients.

Note that this does not exclude the addition of other database types in the future as either extensions, or separate interfaces.

Any input and contribution is greatly appreciated (and encouraged) as it would be best to make this a collaborative effort, especially amongst the database maintainers since they know the pitfalls for the different engines.

Milestones

  • Decide on an interface for DB clients that can be implemented by any SQL based database.
  • Create wrappers for existing database clients to locate potential issues with the interface and current implementations.
  • Refactor existing databases to implement these interfaces.
  • Create a generic test suite to run implementations against
  • Create badges to show implementation percentage for clients

Goal

The general goal for this initiative, is to (relatively) easy transition between databases and have a familiar interface and usage between them.

Consider this PR as a parent issue for the initial implementation.

Contributing

  • Reviews can be made to this PR
  • Suggestions and feedback should be created as issues
  • Contributions should be made as PRs to this PR

Notes

  • Wrappers for Postgres, MySQL and SQLite are currently in the repo, but the long term plan is to remove these as the standard is adopted in the separate repositories. These should be used as examples.

lib/interfaces.ts Outdated Show resolved Hide resolved
lib/interfaces.ts Outdated Show resolved Hide resolved
lib/interfaces.ts Outdated Show resolved Hide resolved
lib/interfaces.ts Outdated Show resolved Hide resolved
lib/interfaces.ts Outdated Show resolved Hide resolved
@codecov-commenter
Copy link

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered ☂️

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.

None yet

2 participants