%clay is version-controlled, referentially-transparent, and global.
While this filesystem is stored in
%clay, it is mirrored to Unix for
convenience. Unix tells
%clays whenever a file changes in the Unix
copy of the filesystem so that the change may be applied.
unix whenever an app or vane changes the filesystem so that the change
can be effected in Unix. Apps and vanes may use
%clay to write to the
filesystem, query it, and subscribe to changes in it. Ford and gall use
%clay to serve up apps and web pages.
%clay includes three components. First is the filesystem/version
control algorithms, which are mostly defined in
zuse. Second is the write, query, and subscription logic. Finally, there
is the logic for communicating requests to, and receiving requests from,
Clay documentation is extensive, but the reader much tread carefully as portions of it are out of date as of March 2021. We are actively working on updating them. If you'd like to help, please reach out to us in the Docs channel on Urbit Community or submit a PR at https://github.com/urbit/docs.
How to interact with the Clay filesystem via Dojo. This includes basics such as mounting to Unix, changing directory, merging, and listing files.
A conceptual overview of how Clay was designed. (Up to date as of March 2021)
A quick overview of how the most common tasks involving Clay are performed: reading and subscribing, syncing to Unix, and merging.
Explanations of the many data types found throughout Clay.
Local Reads and Writes
How local reads and writes work.
How local subscriptions work.
How foreign reads and subscriptions work.