feat: init arcitecture docs

This commit is contained in:
Aravinth Manivannan 2022-05-23 19:18:13 +05:30
parent 52cd757ca7
commit 450557e3f8
Signed by: realaravinth
GPG key ID: AD9F0F08E855ED88

20
docs/ARCHITECTURE.md Normal file
View file

@ -0,0 +1,20 @@
# Architecture
Starchart is designed with maximum flexibility in mind and so it is
highly extensible. Support for new forges, federation formats and
databases can be implemented with ease and this document intends to
document how to do just that.
1. [`db-core`](../db/db-core): Contains traits(Rust-speak for
interfaces) to implement support for new databases. Support for
SQLite via [sqlx](https://crates.io/crates/sqlx) is implemented in
[`db-sqlx-sqlite`](../db/db-sqlx-sqlite)
2. [`forge-core`](../forge/forge-core): Contains traits for implementing
spidering support for a new forge type. Support for Gitea is
implemented in [`gitea`](../forge/forge-core).
3. [`federation-core`](../federate/federate-core): Contains traits to
implement support for new federation file formats. Support for
[publiccodeyml](https://yml.publiccode.tools/) is implemented in
[publiccodeyml](../federate/publiccodeyml).