34 releases (19 breaking)

new 0.30.1 Jan 14, 2025
0.28.1 Jan 10, 2025
0.28.0 Dec 12, 2024
0.27.0 Nov 20, 2024
0.0.0 Feb 8, 2023

#1159 in Database interfaces

Download history 425/week @ 2024-09-24 534/week @ 2024-10-01 793/week @ 2024-10-08 674/week @ 2024-10-15 813/week @ 2024-10-22 717/week @ 2024-10-29 675/week @ 2024-11-05 467/week @ 2024-11-12 550/week @ 2024-11-19 226/week @ 2024-11-26 406/week @ 2024-12-03 780/week @ 2024-12-10 269/week @ 2024-12-17 92/week @ 2024-12-24 214/week @ 2024-12-31 505/week @ 2025-01-07

1,221 downloads per month

EUPL-1.2

185KB
3K SLoC

Types and traits for the OpenTalk API and signaling protocols.

This crate re-exports items from the crates where they are defined. All of these types can be used directly by importing the crate where they are defined directly. If many types are needed in a project, this crate could be the easier starting point though, because it serves as an index of which crates are available.

Crate features

In order to allow efficient usage of the referenced items, this crate defines a flag for each of them. In addition some meta features are available that pull in a set of dependencies.

Meta features

Types meta features

  • types-all - Enables all features that depend on specific datatype crates, indirectly by enabling the api and the signaling-all features.
  • api - Enables the api-v1 feature.
  • signaling-all - Enables all the signaling datatypes feature for all signaling modules.

Functionality meta features

  • backend - Should be enabled when implementing the server side of either a signaling module or an the API. Enables:
  • the backend feature of each types crate
  • diesel
  • kustos
  • rand
  • redis
  • serde
  • frontend - Should be enabled when implemting the client side of either a signaling module or the API. Enables:
  • the frontend feature of each types crate
  • serde

Type features

Functionality features

  • clap - Should be enabled when implementing command-line tooling that exposes the types using clap. This allows listing the possible values of enumeration types using the builtin --help functionality of clap.
  • diesel - Enabling this feature makes some newtypes storable in a database through the diesel crate. Used for implementing the server side with a diesel database backend.
  • kustos - Adds some metadata to types that represent API resources, so that the kustos permission enforcement system can determine which permissions it needs to apply to certain endpoints when implementing the server side of the API.
  • rand - Adds random generation of some datatypes such as uuid, so that they can be generated on the server side in the API endpoint implementation or inside signaling modules.
  • redis - Adds annotations to some signaling data types so that they can be stored inside redis by the server side of a signaling module.
  • serde - Adds serde Serialize and Deserialize implementations for each datatype that is sent over the network.
  • utoipa - Adds utoipa ToSchema and IntoParams implementations to all types that are exposed in the OpenTalk Web API, so that they can be used to generate an OpenAPI specification of the Web API.

Re-exports all known API versions under the corresponding name.

Re-exports all known signaling modules, each gated by a feature called signaling-<modulename>, e.g. signaling-control or signaling-subroom-audio.

Dependencies

~0–12MB
~137K SLoC