#facet #skootrs #schema #module #language #source #models

skootrs-model

This module contains the various data structures used by the other Skootrs modules. This is also setup to make it easy to generate schemas from this code for the purposes of easily implementing Skootrs API compliant clients in other languages and systems.

1 unstable release

0.1.0 Apr 15, 2024

#1356 in Data structures

47 downloads per month
Used in 4 crates

Apache-2.0

225KB
5.5K SLoC

Skootrs-model

This module contains the various data structures used by the other Skootrs modules. This is also setup to make it easy to generate schemas from this code for the purposes of easily implementing Skootrs API compliant clients in other languages and systems.

Over time this will probably transform into more of an SDK.


lib.rs:

This is where all the models for the Skootrs project are defined. The models are just the data representing the abstractions around a project like its repository, source code, and facets.

The models here need to be (de)serializable, i.e. implementing serde::Serialize and serde::Deserialize so that they can be easily used in RPC calls and other places where data needs to be sent over the wire. For example the REST API that is in the skootrs-rest crate. Currently for the sake of simplicity we don'T use much in the way of generics and trait objects because of issues with (de)serialization.

All the models besides those that fall under /skootrs are considered external. In most cases they are code generated. The models in /skootrs are the core models for the Skootrs project and defined for the purpose of the project.

Dependencies

~8MB
~169K SLoC