|
1 | 1 | # LibPQ
|
2 | 2 |
|
| 3 | +LibPQ.jl is a Julia wrapper for the PostgreSQL `libpq` C library. |
| 4 | + |
3 | 5 | [](https://iamed2.github.io/LibPQ.jl/stable)
|
4 | 6 | [](https://iamed2.github.io/LibPQ.jl/latest)
|
5 | 7 | [](https://travis-ci.org/iamed2/LibPQ.jl)
|
6 | 8 | [](https://codecov.io/gh/iamed2/LibPQ.jl)
|
| 9 | + |
| 10 | +## Features |
| 11 | + |
| 12 | +### Goals |
| 13 | + |
| 14 | +*Note that these are goals and do not represent the current state of this package* |
| 15 | + |
| 16 | +LibPQ.jl aims to wrap `libpq` as documented in the PostgreSQL documentation, including all non-deprecated functionality and handling all documented error conditions. |
| 17 | +Where possible, asynchronous functionality will be wrapped in idiomatic Julia control flow. |
| 18 | +All Oids returned in query results will have type conversions defined, as long as I can find documentation on their structure. |
| 19 | +Some effort will be made to integrate with other packages (e.g., [https://github.com/JuliaData/DataStreams.jl](DataStreams.jl)) to facilitate conversion from query results to a malleable format. |
| 20 | + |
| 21 | +Above all, I am doing this for fun and I do not expect to hold this package to any particular standard of completeness or support. |
| 22 | + |
| 23 | +### Non-Goals |
| 24 | + |
| 25 | +LibPQ.jl will not attempt to conform to a standard database interface, though anyone is welcome to write a PostgreSQL.jl library to wrap this package. |
| 26 | + |
| 27 | +This package will not: |
| 28 | + |
| 29 | +* parse SQL |
| 30 | +* emit SQL |
| 31 | +* provide an interface for handling transactions or cursors |
| 32 | +* provide abstractions over common SQL patterns |
| 33 | + |
| 34 | +### Possible Goals |
| 35 | + |
| 36 | +This package may not: |
| 37 | + |
| 38 | +* install libpq or PostgreSQL |
| 39 | +* test on multiple install configurations |
| 40 | +* aim to support any particular versions of libpq or PostgreSQL |
| 41 | +* support conversion from some Oid to some type |
| 42 | +* provide easy access to every possible connection method |
| 43 | +* be as memory-efficient as possible (memory-safety will be prioritized) |
| 44 | + |
| 45 | +While I may never get to any of these, I welcome tested, documented contributions! |
| 46 | + |
| 47 | +## Licenses |
| 48 | + |
| 49 | +### `libpq` Source and PostgreSQL Documentation |
| 50 | + |
| 51 | +``` |
| 52 | +PostgreSQL is Copyright © 1996-2017 by the PostgreSQL Global Development Group. |
| 53 | +
|
| 54 | +Postgres95 is Copyright © 1994-5 by the Regents of the University of California. |
| 55 | +
|
| 56 | +Permission to use, copy, modify, and distribute this software and its |
| 57 | +documentation for any purpose, without fee, and without a written agreement is |
| 58 | +hereby granted, provided that the above copyright notice and this paragraph |
| 59 | +and the following two paragraphs appear in all copies. |
| 60 | +
|
| 61 | +IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR |
| 62 | +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING |
| 63 | +LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, |
| 64 | +EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF |
| 65 | +SUCH DAMAGE. |
| 66 | +
|
| 67 | +THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
| 68 | +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| 69 | +A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN “AS-IS” BASIS, |
| 70 | +AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, |
| 71 | +SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
| 72 | +``` |
| 73 | + |
| 74 | +### Everything Else |
| 75 | + |
| 76 | +The license for the remainder of this package appears in [LICENSE](./LICENSE). |
0 commit comments