Crate bonsaidb_server
source ·Expand description
BonsaiDb’s networked database implementation.
This crate implements BonsaiDb’s networked database implementation. The
Server
and CustomServer<Backend>
types provide their most common functionality by implementing the
StorageConnection
.
This crate supports two methods for exposing 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.
Our user’s guide has a section covering setting up and accessing a BonsaiDb server.
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.70
.
Feature Flags
By default, the full
feature is enabled.
full
: Enables all the flags below,acme
: Enables automtic certificate acquisition through ACME/LetsEncrypt.cli
: Enables thecli
module.encryption
: Enables at-rest encryption.hyper
: Enables convenience functions for upgrading websockets usinghyper
.instrument
: Enables instrumenting withtracing
.pem
: Enables the ability to install a certificate using the PEM format.websockets
: EnablesWebSocket
support.password-hashing
: Enables the ability to use password authentication using Argon2.token-authentication
: Enables the ability to authenticate using authentication tokens, which are similar to API keys.
Re-exports
pub use bonsaidb_core as core;
pub use bonsaidb_local as local;
pub use fabruic;
Modules
- Types for defining API handlers.
- Command-line interface for the server.
Structs
- The Automated Certificate Management Environment (ACME) configuration.
- Configuration for the BonsaiDb network protocol.
- A connected database client.
- A BonsaiDb server.
- A locked reference to associated client data.
- A
Backend
with no custom functionality. - A connected network peer.
- Configuration options for
Server
- A database belonging to a
CustomServer
.
Enums
- An error that can occur inside of a
Backend
function. - Controls how a server should handle a connection.
- The default permissions to use for all connections to the server.
- An error occurred while interacting with a
Server
. - TCP
ApplicationProtocols
that BonsaiDb has some knowledge of. - The ways a client can be connected to the server.
Constants
- URI of https://letsencrypt.org/ prod Directory. Certificates aquired from this are trusted by most Browsers.
- URI of https://letsencrypt.org/ staging Directory. Use this for tests. See https://letsencrypt.org/docs/staging-environment/
Traits
- A collection of supported protocols for a network service.
- Tailors the behavior of a server to your needs.
- A service that can handle incoming HTTP connections. A convenience implementation of
TcpService
that is useful is you are only serving HTTP and WebSockets over a service. - A service that can handle incoming TCP connections.
Type Aliases
- A BonsaiDb server without a custom backend.