bonsaidb-client 0.4.1

Client for accessing BonsaiDb servers.
Documentation
Networked client for `bonsaidb-server`.

This crate supports two methods for accessing a BonsaiDb server: QUIC and
WebSockets.

QUIC is a new protocol built atop UDP. It is designed to operate more
reliably than TCP, and features TLS built-in at the protocol level.
WebSockets are an established protocol built atop TCP and HTTP.

[`Client`](crate::Client) provides access to BonsaiDb by implementing the
[`StorageConnection`](::bonsaidb_core::connection::StorageConnection) trait.

## Minimum Supported Rust Version (MSRV)

While this project is alpha, we are actively adopting the current version of
Rust. The current minimum version is `1.58`, and we plan on updating the MSRV to
implement [namespaced
Features](https://github.com/khonsulabs/bonsaidb/issues/178) as soon as the
feature is released.

## WASM Support

This crate supports compiling to WebAssembly. When using WebAssembly, the
only protocol available is WebSockets.

### Testing Websockets in a Browser

We have a fully deployed [example
application](https://github.com/khonsulabs/minority-game) available that can be
downloaded and run locally. This example is confirmed to work using Firefox on a
local machine, or any modern browser when accessing
[https://minority-game.gooey.rs/](https://minority-game.gooey.rs/).

- Ensure that the browser is able to talk to the IP/port that you're bound to.
  Browsers try to prevent malicious scripts. You may need to bind `0.0.0.0`
  instead of `localhost`, for example, to circumvent these protections.
- All Chrome-based browsers [require secure
  websockets](https://stackoverflow.com/a/50861413/457) over localhost. This
  makes Chrome not a great candidate for testing WASM applications locally, as
  installing a valid certificate in a test/dev environment can be tricky and/or
  annoying.