What is Roost?
-
Roost consists of three crates:
roost
: A server binary crate to be run on our machine. (Depends uponroost-app
)roost-app
: An application crate that is a library handling most of the components of Roost.app/src/views
: Handles the available views in Roost, such as aFileView
and aDirView
respectivelyapp/src/state
: Handles the application state of Roost, such as obtaining the file and directory contents.
roost-client
: A client crate that is built to web assembly and served by theroost
crate. (Depends uponroost-app
)
-
Roost is a fork of the isomorphic web app example within Percy's Github repository.
- Percy allows for modern web app development features such as:
- A virtual DOM
- Server side rendering of a single page application (SPA)
- Since Roost is an isomorphic web app, other clients could be added such as an electron client.
- Writing HTML and CSS with Percy is simple because of the
html!
andcss!
macros.- Examples that use the
html!
andcss!
macros can be found inapp/src/views/
- Examples that use the
- Roost was forked from Percy's isomorphic web app example shortly after the
on_visit
attribute was added to the route handlers inapp/src/lib.rs
.- This
on_visit
attribute was a key element of the download example I added to Percy.
- This
- Percy allows for modern web app development features such as:
-
At the moment Roost allows you to navigate the current state of contents in a local Pijul repository.
- The repository contents that Roost currently allows you to view are:
- File contents from the latest patch
- Current state of directory contents
- Any changes made to the repository are characterized with colored backgrounds in the directory view
- Information about previous patches applied to the current file or directory
- By "current state", it is meant that if you make adjustments to the local repository, those adjustments are reflected in Roost.
- The repository contents that Roost currently allows you to view are: