basws

Crates.iobasws
lib.rsbasws
version0.1.4
sourcesrc
created_at2020-09-15 22:09:15.612246
updated_at2021-02-08 18:35:08.732133
descriptionA simple async WebSocket client/server framework
homepage
repositoryhttps://github.com/khonsulabs/basws
max_upload_size
id289246
size74,143
Jonathan Johnson (ecton)

documentation

README

basws

crate version

basws is a simple framework that aims to simplify the amount of code required to build an interactive WebSocket API.

basws is built atop warp on the server, and tokio-tungstenite on the client. Both crates utilize the tokio runtime.

Features

  • Built atop cbor, which has many implementations in various technology stacks
  • Basic support for one account logging in on multiple devices
  • Easy out-of-band async message sending
  • Provides network timing statistics on both the server and client

For a simple example, check out chat example in the ./basws/examples directory.

Usage

Environment

Server

Add either of these lines to your Cargo.toml:

# Either use the basws parent crate
basws = { version = "0.1", features = ["server"] }
# Or, use the basws-server crate
basws-server = "0.1"

Client

Add either of these lines to your Cargo.toml:

# Either use the basws parent crate
basws = { version = "0.1", features = ["client"] }
# Or, use the basws-client crate
basws-client = "0.1"

Yew

Add either of these lines to your Cargo.toml:

# Either use the basws parent crate
basws = { version = "0.1", features = ["yew"] }
# Or, use the basws-client crate
basws-yew = "0.1"

When building for release, an environment variable needs to be present: BASWS_CLIENT_ENCRYPTION_KEY. This should be a 32-character string. It is used to encrypt the session information stored in the browser. If you ever suspect that you need to invalidate existing session information, rotating this key will cause every user to start a new session.

Commit count: 59

cargo fmt