Update README.md

This commit is contained in:
Nikita Volkov 2016-02-07 11:59:51 +03:00
parent 7618ae1ff2
commit f321528631

View File

@ -1,6 +1,6 @@
# What Hasql is
Hasql is a highly efficient PostgreSQL driver and a mapping API. It targets both the users, which need the low level of abstraction, and the users, which face the typical tasks of DB-oriented applications, providing them with higher-level APIs.
Hasql is a highly efficient PostgreSQL driver and a mapping API. It targets both the users, who need the low level of abstraction, and the users, which face the typical tasks of DB-oriented applications, providing them with higher-level APIs.
## Ecosystem
@ -8,13 +8,13 @@ Hasql is not just a single library, it is a granular ecosystem of composable lib
* ["hasql"](https://github.com/nikita-volkov/hasql) - the root of the ecosystem, which provides the essential abstraction over the PostgreSQL client functionality and mapping of values. Everything revolves around that library.
* ["hasql-pool"](https://github.com/nikita-volkov/hasql-pool) - an extension library, which provides a Hasql-specialized abstraction over the connection pool.
* ["hasql-pool"](https://github.com/nikita-volkov/hasql-pool) - a Hasql-specialized abstraction over the connection pool.
* ["hasql-transaction"](https://github.com/nikita-volkov/hasql-transaction) - an extension library, which provides a **composable** abstraction over database transactions with an **automated conflict resolution**.
* ["hasql-transaction"](https://github.com/nikita-volkov/hasql-transaction) - a **composable** abstraction over the database transactions with an **automated conflict resolution**.
* "hasql-stream" - an extension library, which provides an abstraction over cursors. *Yet to be released.*
* "hasql-stream" - an abstraction over cursors. *Yet to be released.*
* ["hasql-th"](https://github.com/nikita-volkov/hasql-th) - an extension library, which provides Template Haskell utilities, such as getting the SQL from external files at compile-time. It's planned to extend this library to provide a compile-time checking of the SQL-syntax correctness.
* ["hasql-th"](https://github.com/nikita-volkov/hasql-th) - Template Haskell utilities, such as getting the SQL from external files at compile-time. It's planned to extend this library to provide a compile-time checking of the SQL-syntax correctness.
* "hasql-migration" - an abstraction over the migration strategies. *Yet to be released.*
@ -22,9 +22,9 @@ Hasql is not just a single library, it is a granular ecosystem of composable lib
* **Simplicity.** Each library in isolation provides a simple API, which is trivial to comprehend.
* **Flexibility and composability.** The user picks and chooses the features, thus precisely reaching the level of abstraction, which he needs for his task.
* **Flexibility and composability.** The user picks and chooses the features, thus precisely matching the level of abstraction that he needs for his task.
* **Much more stable and more descriptive semantic versioning.** E.g., a change in the API of the "hasql-transaction" library won't affect any of the other libraries and it gives the user a much more precise information about which part of his application he needs to update to conform.
* **Much more stable and more descriptive semantic versioning.** E.g., a change in the API of the "hasql-transaction" library won't affect any of the other libraries and it gives the user a more precise information about which part of his application he needs to update to conform.
* **Interchangeability and competition of the ecosystem components.** E.g., [not everyone will agree](https://github.com/nikita-volkov/hasql/issues/41) with the restrictive design decisions made in the "hasql-transaction" library. However those decisions are not imposed on the user, and instead of having endless debates about how to abstract over transactions, another extension library can simply be released, which will provide a different interpretation of what the abstraction over transactions should be.