mirror of
https://github.com/VinGarcia/ksql.git
synced 2025-09-04 19:36:56 +00:00
Initial Home page
commit
bae9918ade
57
Home.md
Normal file
57
Home.md
Normal file
@ -0,0 +1,57 @@
|
||||
Welcome to the ksql wiki!
|
||||
|
||||
# KissSQL
|
||||
|
||||
KissSQL or the "Keep it Simple" SQL package was created to offer an
|
||||
actually simple and satisfactory tool for interacting with SQL Databases.
|
||||
|
||||
The core idea on `ksql` is to offer an easy to use interface,
|
||||
the actual comunication with the database is decoupled so we can use
|
||||
`ksql` on top of `pgx`, `database/sql` and possibly other tools.
|
||||
You can even create you own backend adapter for `ksql` which is
|
||||
useful in some situations.
|
||||
|
||||
## Why `ksql`?
|
||||
|
||||
ksql is meant to improve on the existing ecosystem by providing
|
||||
a well-designed database package that has:
|
||||
|
||||
1. A small number of easy-to-use helper functions for common use cases
|
||||
2. Support for more complicated use-cases by allowing
|
||||
the user to write SQL directly
|
||||
|
||||
This strategy allows the API to be
|
||||
|
||||
- Very simple with a small number of functions
|
||||
- Harness all the power of SQL, by just allowing the user to type SQL
|
||||
- Less opportunities for making mistakes, which makes code reviews easier
|
||||
- A succinct and idiomatic Go idiom reducing the cognitive complexity of your code
|
||||
- Easy ways of mocking your database when you need to
|
||||
- Support for all common relational database: `mysql`, `sqlite`, `sqlserver` and `postgres`
|
||||
|
||||
Some special use-cases also have some special support:
|
||||
|
||||
- The `QueryChunks()` method helps you in the few situations when you might
|
||||
need to load in a single query more data than would fit in memory.
|
||||
- For saving you time when you are selecting all fields from a struct you
|
||||
can omit the `SELECT ...` part of the query which causes ksql to write
|
||||
this part for you saving a lot of work when working with big structs/tables.
|
||||
- The Nested Structs feature will help you reuse existing structs/models when working with JOINs.
|
||||
|
||||
**Supported Drivers:**
|
||||
|
||||
ksql is well decoupled from its backend implementation which makes
|
||||
it easy to change the actual technology used, currently we already
|
||||
support the following options:
|
||||
|
||||
- Using the `database/sql` as the backend we support the following drivers:
|
||||
- `"postgres"`
|
||||
- `"sqlite3"`
|
||||
- `"mysql"`
|
||||
- `"sqlserver"`
|
||||
- We also support `pgx` (actually `pgxpool`) as the backend which
|
||||
is a lot faster for Postgres databases.
|
||||
|
||||
If you need a new `database/sql` driver or backend adapter included
|
||||
please open an issue or make your own implementation
|
||||
and submit it as a Pull Request.
|
Loading…
x
Reference in New Issue
Block a user