This library implements PostgreSQL Wire Protocol, and provide essential APIs to write PostgreSQL comptible servers and clients.
This library is a work in progress.
To use pgwire
in your server application, you will need to implement two key
components: startup processor and query processor. For query processing, there
are two kinds of queries: simple and extended. In simple mode, the sql command
is passed to postgresql server as a string. In extended query mode, a sql
command follows parse
-bind
-describe
(optional)-execute
lifecycle.
Examples are provided to demo the very basic usage of pgwire
on server side:
examples/sqlite.rs
: uses an in-memory sqlite database at its core and serves
it with postgresql protocol.examples/gluesql.rs
: uses an in-memory
gluesql at its core and serves
it with postgresql protocol.examples/server.rs
: demos a server that always returns fixed results.examples/secure_server.rs
: demos a server with ssl support and always
returns fixed results.I think in most case you do not need pgwire to build a postgresql client, existing postgresql client like rust-postgres should fit your scenarios. Please rise an issue if there is a scenario.
This library is released under MIT/Apache dual license.