Commit Graph

74 Commits

Author SHA1 Message Date
Steven Fackler
3b31551f73 Upgrade fallible-iterator 2019-03-10 16:32:28 -07:00
Steven Fackler
1f80b78f07 Adjust API layout 2019-03-04 21:51:44 -08:00
Steven Fackler
31534b5734 Fix serde docs 2019-03-04 21:51:44 -08:00
Steven Fackler
07c7ffdac6 Finish docs for tokio-postgres 2019-03-04 21:22:50 -08:00
Steven Fackler
32e09dbb91 Change batch_execute into simple_query
Closes #413
2019-01-31 20:35:17 -08:00
Steven Fackler
e3a25ad6c8 Skip DNS lookup for IP addrs 2019-01-19 13:38:51 -08:00
Steven Fackler
07078871d9 Get rid of StringRow
It's not exposed by any methods, and the API isn't great.
2019-01-14 21:44:59 -08:00
Steven Fackler
2d3b9bb1c6 Move the TLS mode into config 2019-01-13 15:07:20 -08:00
Steven Fackler
5b045940f4 Rename handshake to connect_raw 2019-01-07 21:45:09 -08:00
Steven Fackler
364a19b0b3 Fix test 2019-01-07 21:19:09 -08:00
Steven Fackler
e372cdc6f9 Docs 2019-01-07 20:44:26 -08:00
Steven Fackler
1f6d9ddc06 Overhaul query cancellation
Multi-host support means we can't simply take the old approach - we need
to know which of the hosts we actually connected to. It's also nice to
move this from the connection to the client since that's what you'd
normally have access to.
2019-01-06 18:03:51 -08:00
Steven Fackler
a6535b4310 Internal connect refactoring 2019-01-06 15:20:28 -08:00
Steven Fackler
e0d113791c Rename raw cancel query 2019-01-06 11:33:22 -08:00
Steven Fackler
940cbb8d4b Remove future from MakeTlsMode
It's unlikely to be useful in practice, and just introduces more
complexity.
2019-01-05 22:07:20 -08:00
Steven Fackler
b2f1d51451 cleanup 2019-01-03 21:14:34 -08:00
Steven Fackler
9e25e47fe0 cleanup 2019-01-01 12:20:41 -08:00
Steven Fackler
a675b0b50a Accept a limited set of parameters in Config
This matches with libpq's behavior, which doesn't allow arbitrary
parameters. You can still set arbitrary parameters, just through the
`options` field.
2018-12-30 20:07:03 -08:00
Steven Fackler
45444d6c51 Support target_session_attrs
Closes #399
2018-12-30 11:50:15 -08:00
Steven Fackler
38db34eb6a Support TCP keepalive 2018-12-30 09:38:12 -08:00
Steven Fackler
9116147aee Rename Builder to Config 2018-12-29 21:00:58 -08:00
Steven Fackler
6ae93a0634 Add a convenience connect free function 2018-12-29 13:28:38 -08:00
Steven Fackler
634d24a951 Wrap Builder in an Arc
The builder ends up being cloned a couple of times per connection, so
use Arc::get_mut to make that faster.
2018-12-28 14:16:38 -05:00
Steven Fackler
635e6381b3 A less stringy builder
This allows us to support things like non-utf8 passwords and unix socket
directories.
2018-12-28 13:51:30 -05:00
Steven Fackler
e80e1fcaaf Don't require passwords to be strings in protocol 2018-12-27 17:36:04 -05:00
Steven Fackler
aa1e587433 Make internal simple query future a stream 2018-12-27 13:51:39 -05:00
Steven Fackler
defe764520 Support connect_timeout 2018-12-25 16:11:33 -05:00
Steven Fackler
d5104bc473 Turn on TCP nodelay in socket 2018-12-25 15:35:33 -05:00
Steven Fackler
760e4a4f3b Guarantee some buffer for messages 2018-12-23 15:50:41 -08:00
Steven Fackler
7eaac1cb1a Sync copy_in support 2018-12-22 21:42:03 -08:00
Steven Fackler
1fdfefbeda Add Client::poll_idle
Closes #403
2018-12-22 17:02:48 -08:00
Steven Fackler
b9e8b4868b Add Client::is_closed 2018-12-21 21:08:26 -08:00
Steven Fackler
23b0d6e6f3 Support multiple hosts when connecting
cc #399
2018-12-19 20:18:48 -08:00
Steven Fackler
7e7ae968c1 Prep for multi-host support
cc #399
2018-12-18 21:39:05 -08:00
Steven Fackler
919012d0c9 Finish convenience API 2018-12-17 21:25:21 -08:00
Steven Fackler
7df7fc715b Start on runtime API 2018-12-16 22:00:46 -08:00
Steven Fackler
46f4a2911c Deserialize libpq-style connection strings
Just the key/value pair version for now - URLs will come later
2018-12-13 21:03:47 -08:00
Steven Fackler
c23e3e0bda Merge row bits 2018-12-10 20:56:22 -08:00
Steven Fackler
04ce4bb7a1 Run clippy 2018-12-09 21:44:07 -08:00
Steven Fackler
6ff59acdd2 rustfmt 2018-12-08 17:53:30 -08:00
Steven Fackler
b4ce9c38e5 Upgrade tokio-postgres to 2018 edition 2018-12-08 17:52:20 -08:00
Steven Fackler
4d16fbb906 Get rid of postgres-shared 2018-12-08 17:39:20 -08:00
Steven Fackler
db771e8bdf Switch copy_in to use Buf 2018-12-02 21:26:10 -08:00
Steven Fackler
39e2723ccb Remove tls-unique channel binding
This got axed in the stable PostgreSQL 11 stable release.
2018-11-28 20:09:04 -08:00
Steven Fackler
08b4020534 Overhaul connection APIs
* `Connection` is now parameterized over the stream type, which can be
    any `AsyncRead + AsyncWrite`.
* The `TlsMode` enum is now a trait, and `NoTls`, `PreferTls`, and
    `RequireTls` are types implementing that trait.
* The `TlsConnect` trait no longer involves trait objects, and returns
    channel binding info alongside the stream type rather than requiring
    the stream to implement an additional trait.
* The `connect` free function and `ConnectParams` type is gone in favor
    of a `Builder` type. It takes a pre-connected stream rather than
    automatically opening a TCP or Unix socket connection.

Notably, we no longer have any dependency on the Tokio runtime. We do
use the `tokio-codec` and `tokio-io` crates, but those don't actually
depend on mio/tokio-reactor/etc. This means we can work with other
futures-based networking stacks.

We will almost certainly add back a convenience API that offers
something akin to the old logic to open a TCP/Unix connection
automatically but that will be worked out in a follow up PR.
2018-11-28 19:20:40 -08:00
Steven Fackler
0e60d80d4b Parameterize Connection over the stream 2018-11-25 08:49:28 -08:00
Michael Niens
d6fd28d02f Allow to build on Windows
Someone forgot to handle the non unix case for this match which prevented a build on windows.

A similar line already existed here in line 51 to 56.
5ad7850009/tokio-postgres/src/stream.rs
2018-08-26 00:06:42 +02:00
Steven Fackler
5bea375b37 Remove the flush step from connect future
The socket's not buffered, so there's no need to do this.
2018-08-18 13:02:52 -07:00
Steven Fackler
89f5198261 Add query_portal 2018-08-15 21:00:15 -07:00
Steven Fackler
349f3764a9 Don't bother waiting for a ReadyForQuery
We use it in the connection to track framing but don't need to wait
around for it in the individual futures/streams
2018-08-15 20:24:50 -07:00