Sebastian Dröge
69d9a0c364
Update dependencies
5 years ago
Sebastian Dröge
9f3a1ee30b
Add proxy waiters to allow the Stream to trigger AsyncWrite operations
...
As a side effect also gets rid of unsafe code and raw pointers.
We have the problem that external read operations (i.e. the Stream impl)
can trigger both read (AsyncRead) and write (AsyncWrite) operations on
the underyling stream. At the same time write operations (i.e. the Sink
impl) can trigger write operations (AsyncWrite) too.
Both the Stream and the Sink can be used on two different tasks, but it
is required that AsyncRead and AsyncWrite are only ever used by a single
task (or better: with a single waker) at a time.
Doing otherwise would cause only the latest waker to be remembered, so
in our case either the Stream or the Sink impl would potentially wait
forever to be woken up because only the other one would've been woken
up.
To solve this we implement a waker proxy that has two slots (one for
read, one for write) to store wakers. One waker proxy is always passed
to the AsyncRead, the other to AsyncWrite so that they will only ever
have to store a single waker, but internally we dispatch any wakeups to
up to two actual wakers (one from the Sink impl and one from the Stream
impl).
5 years ago
Danny Browning
dc9c1b3d5f
Remove trace on start send
5 years ago
Danny Browning
8ed45bc110
More logging
5 years ago
Atul Bhosale
eb2c63ee73
Format code using 'cargo fmt'
5 years ago
Danny Browning
6cdf141a02
Build with no default features, examples still require default features
5 years ago
Sebastian Dröge
6ed543c8bf
Update to tungstenite 0.9.2 instead of tracking git master
5 years ago
Danny Browning
3ccd307be3
Update to work on stable
5 years ago
Sebastian Dröge
1764a42b19
Update to pin-project 0.4
5 years ago
Sebastian Dröge
b76d8cbc03
Port/rename to async-std / async-tungstenite
5 years ago
Danny Browning
0c2779965d
Add tcp dependency for net
5 years ago
Danny Browning
1cbac51d14
Bringing splitting back
5 years ago
Danny Browning
46ac847977
Use tokio built in dns
5 years ago
Danny Browning
3821e0952a
Tokio 0.2 Conversion
...
Update to use tokio 0.2 ecosystem to integrate with tungstenite.
5 years ago
Daniel Abramov
59ca2c885e
Merge pull request #65 from vorot93/rust-2018
...
Upgrade to Rust 2018, format the code
5 years ago
Artem Vorotnikov
9bd5f01784
Upgrade to Rust 2018, format the code
5 years ago
Daniel Abramov
9cf7243860
Merge pull request #63 from najamelan/cleanup
...
Cleanup
5 years ago
Naja Melan
380f531d86
Fix some clippy warnings about unnecessary closures for more concise code
5 years ago
Naja Melan
0793764dcd
Add `dyn` to silence compiler warnings
5 years ago
Daniel Abramov
52f74684ee
Bump version
5 years ago
Daniel Abramov
952b4b2410
Update to the new `tungstenite-rs`
5 years ago
Alexey Galakhov
09ba8d733f
Version 0.8.0 released.
...
Signed-off-by: Alexey Galakhov <agalakhov@snapview.de>
6 years ago
Alexey Galakhov
8b13cb7ad3
test: add autobahn tests
...
Signed-off-by: Alexey Galakhov <agalakhov@snapview.de>
6 years ago
Daniel Abramov
e2cdf11bc8
Update to the latest `tungstenite-rs` version
6 years ago
Daniel Abramov
4c60589773
Merge pull request #57 from dfaust/master
...
Depend on tungstenite master branch
6 years ago
Daniel Faust
334148fff5
Depend on tungstenite master branch
6 years ago
Alexey Galakhov
203fa0b2bd
Merge pull request #54 from nimiq/jeff/upstream_get_remote_address
...
Implement support to get the remote address
6 years ago
Jeffrey Esquivel S
eda57a012c
Implement support to get the peer address
6 years ago
Alexey Galakhov
eb7b3df7c7
Merge pull request #53 from snapview/close-as-message
...
Introduce `Message::Close` support and return `Async::Ready(None)` when the stream is ended
6 years ago
Daniel Abramov
b9e6e59dce
Bump version
6 years ago
Daniel Abramov
7d2f0c9ffb
Return `Close` messages to the user
...
Solves #45 and #51
6 years ago
Daniel Abramov
1dcf833f6a
Merge pull request #48 from zargony/optional_tls_stream_type
...
Add `MaybeTlsStream` wrapper type for streams that might be protected with TLS
6 years ago
Daniel Abramov
b2eaf03876
Merge pull request #49 from jeffesquivels/update_comment
...
Update comment to reflect current code
6 years ago
Jeffrey Esquivel S
6c3b8a5137
Update comment to reflect current code
6 years ago
Andreas Neuhaus
430c06048d
Add `MaybeTlsStream` wrapper type for streams that optionally use TLS
...
Connecting to a URL wraps the connection into this wrapper type based
on the protocol of the URL (`ws:` or `wss:`). Making this type public
allows client applications to specify the websocket's type without
importing the tokio_tls crate.
6 years ago
Daniel Abramov
e3174bf2a2
Merge pull request #47 from mehcode/feature/upgrade-tokio
...
Update tokio-tls to 0.2 and replace fully tokio-core with tokio
6 years ago
Ryan Leckey
b9b6f2de5a
Update tokio-tls to 0.2 and replace fully tokio-core with tokio
6 years ago
Daniel Abramov
9f3b559555
Bump version
6 years ago
Daniel Abramov
f4b1e78475
Update important dependencies
6 years ago
Alexey Galakhov
d43c61428e
Merge pull request #46 from snapview/update-dependencies
...
Update to the newest `tungstenite-rs` version
6 years ago
Daniel Abramov
b61ed96561
Update to the newest `tungstenite-rs` version
...
* Fixes #35
* Replaces https://github.com/snapview/tokio-tungstenite/pull/40
* Gives a good background for https://github.com/snapview/tokio-tungstenite/pull/41
6 years ago
Daniel Abramov
8b3f811be7
Merge pull request #43 from slowtec/fix-42
...
fix tokio import
6 years ago
Markus Kohlhase
475486a0a1
fix tokio import
7 years ago
Daniel Abramov
9740711083
Merge pull request #39 from sbruton/master
...
upgrades tokio-dns-unofficial to fix nightly toolchain
7 years ago
Juan Crouton
55c2b7b396
upgrades tokio-dns-unofficial to fix nightly toolchain
7 years ago
Daniel Abramov
336bb2573b
Merge pull request #38 from Eroc33/master
...
Port to tokio reform
7 years ago
Euan Rochester
e2012633b4
Port to tokio reform
7 years ago
Daniel Abramov
6ac55ac555
Merge pull request #37 from bluetech/wsstream-without-handshake
...
Allow constructing WebSocketStream without performing a handshake
7 years ago
Ran Benita
0db773ab36
Allow constructing WebSocketStream without performing a handshake
...
Add wrappers around similar constructors for tungstenite::WebSocket.
These are useful when doing protocol upgrades in a hyper server, where
the handshake was already performed by the HTTP server.
7 years ago
Alexey Galakhov
ad8aa4c98a
Update dependencies and bump version
...
Version 0.5.1 released
Signed-off-by: Alexey Galakhov <agalakhov@snapview.de>
7 years ago