All notable changes to this project will be documented in this file.
The format is roughly based on Keep a Changelog.
This project intends to inhere to Semantic Versioning, but has not yet reached 1.0 so all APIs might be changed.
- Fixed an infinite loop in the actor that could occur when all
Client
instances are dropped and there are still ongoing operations (#124)
Thanks to the people who contributed to this release:
- @Sytten
- Updated tungstenite bounds to support 0.24 as well as 0.23. (#121)
Thanks to the people who contributed to this release:
- @Sytten
- send graphql-specific ping instead of ws ping frame (#117)
- graphql-transport-ws pings are now responded to with graphql-tranport-ws pongs, rather than websocket pongs (#116)
- Keep alives now send
graphql-transport-ws
ping messages instead of websocket ping frames (#117)
Thanks to the people who contributed to this release:
- @vorporeal
- @szgupta
- @carlocorradini
- Fixed some compile errors when
ws_stream_wasm
was enabled andtungstenite
was not (#111)
- All Connection trait functions now return impl Future instead of BoxFuture (#108)
- Removed the legacy API that was deprecated in v0.8.0 (#81)
- The deprecated
async-tungstenite
feature has been removed. Use thetungstenite
feature instead, which works withasync-tungtenite
,tokio-tungstenite
and any other library that provides afutures::{Stream, Sink}
based tungsetenite interface. (#106)
- MSRV is now 1.76
- Updated dependencies (#100)
tungstenite
0.23
graphql_client
0.14
- Removed unused dependencies (#105)
async-trait
pin-project-lite
Thanks to the people who contributed to this release:
- @carlocorradini
- The
no-logging
feature has been removed in favour of a defaultlogging
feature (#97)
- Added keep-alive functionality. When enabled this will send periodic pings when the connection appears inactive. If these pings are not replied to, the connection will be considered broken. (#93, #94, #103)
- Client is now Debug (#101)
- simplify keep alive implementation
- pin release-plz version (#91)
Thanks to the people who contributed to this release:
- @rhishikeshj
- @carlocorradini
0.8.2 - 2024-04-09
Client::subscribe
now takes&self
instead of&mut self
, to make sharing aClient
among threads easier (#88)Client
is now clone, again to make sharing among threads easier (#88)
- Hopefully fixed the docs.rs build
async_tungstenite
is no longer a default feautre, you should explicitly enable it if you need it.- Updated to
tungstenite
0.21 - MSRV is now 1.69 (there was no official MSRV before)
- Subscription IDs sent to the server are now just monotonic numbers rather than uuids.
These will be removed in a future version, probably in v0.9.0
AsyncWebsocketClient
and all its supporting traits and structs are now deprecated.- The
async-tungstenite
feature flag is deprecated and will be removed in favour oftungstenite
eventually.
- Added an entirely new client API as a replacement for the old API.
- Added a
subscribe
function tonext::ClientBuilder
to make creating a single subscription on a given connection easier.
graphql-ws-client
now depends only ontungstenite
and not directly onasync-tungstenite
(ortokio-tungstenite
). This should allow it to work with more versions of the async libraries (provided they support the sametungstenite
version).
async-tungstenite
is no longer automatically enabled when adding any of the client feature flags.
graphql-ws-client
now depends only ontungstenite
and not directly onasync-tungstenite
(ortokio-tungstenite
) This should allow it to work with more versions of the async libraries (provided they support the sametungstenite
version).
- Fixed
tokio-tungstenite
support by switching theasync_tungstenite
Connection
impl to a generic impl on anytungstenite
compatibleStream
&Sink
.
- The
next
api is now available at the top level rather than thenext
module. async_tungstenite
is no longer a default feautre, you should explicitly enable it if you need it- Updated to
async_tungstenite
0.25 - Renamed
Client::streaming_operation
to subscribe innext
api. - MSRV is now 1.69 (there was no official MSRV before)
These will be removed in a future version, probably in v0.9.0
AsyncWebsocketClient
and all its supporting traits and structs are now deprecated.
- Added a
subscribe
function tonext::ClientBuilder
to make creating a single subscription on a given connection easier.
Error::Close
now has a code as well as a reason.
- Added a
next
module with a significant re-work of the API
- Subscription IDs sent to the server are now just monotonic numbers rather than uuids.
SubscriptionStream
no longer takesGraphqlClient
as a generic parameter- Removed the
GraphqlClient
trait and all its uses - Changed the
StreamingOperation
trait:- Removed the
GenericResponse
associated type decode_response
now always takes aserde_json::value
- I expect most implementations of this will now just be a call toserde_json::from_value
- Removed the
async_tungstenite
dependency has been updated to 0.24
async_tungstenite
dependency has been updated to 0.23, pulling in a tungstenite security fix
cynic
dependency has been updated to 3graphql_client
dependency has been updated to 0.13async_tungstenite
dependency has been updated to 0.22
- Updated the cynic code to support operations with variables.
cynic
dependency has been updated to 2.2async_tungstenite
dependency has been updated to 0.19graphql_client
dependency has been updated to 0.12
- The examples now compile.
- Added support for wasm with the
ws_stream_wasm
library.
- Updated some dependency versions
graphql-ws-client
will no longer panic when it receives aPing
event.- The
AsyncWebsocketClientBuilder
type is nowSend
.
- Clients are now created through builder types rather than directly. See the
AsyncWebsocketClientBuilder
type (or it'sCynicClientBuilder
alias) cynic
support is now behind theclient-cynic
feature.- It's now recommended to use a custom impl of
futures::task::Spawn
for tokio rather than theasync_executors
crate, asasync_executors
is not compatible with#[tokio::main]
. An example impl is provided fortokio
in the examples folder.
graphql_client
is now supported, behind theclient-graphql-client
feature.graphql-ws-client
now has an examplestreaming_operation
now returns aSubscriptionStream
type. This is still aStream
but also exposes astop_operation
function that can be used to tell the server to end the stream.cynic
no longer requires the use ofasync_executors
- it now only requires animpl futures::task::Spawn
. An example is included for tokio. Old code using theAsyncStd
executor should continue to work but tokio users are encouraged to provide their own using the example.
graphql-ws-client
has better support for running inside#[tokio::main]
- Cynic will now use the
log
crate rather than printing to stdout.
- Initial release