Strata is a platform for developing portable software in a safe, collaborative manner.
With Strata, you don't have to be, or become, a professional programmer to write amazing software.
With Strata, you don't have to be, or become, a security expert to safely operate online.
Strata applications can be designed to run online, in the shell, or both. The underlying program, Fossil, is freely available for virtually every platform.
Strata includes an embedded web server capable of serving HTTP, CGI and SCGI protocols.
A Strata web application is implemented as a collection of one or more Fossil webpage hooks.
Strata uses Fossil to run applications in the shell.
A Strata shell application is implemented as a collection of one or more Fossil command hooks.
Strata includes an embedded interpreter called TH1, which supports a strict subset of TCL. TH1 is expressive enough for simple logical operations and provides methods for working with a repository's content.
When properly compiled, Strata also supports TCL interpretation by loading an external library at runtime.
Thus, the Strata interpreter offers three levels of runtime security.
- Strict - No TCL interpreter
- Safe - Safe TCL interpreter
- Unsafe - Unsafe TCL interpreter
Strata provides a robust library of TH1 procedures which act as building blocks for more complex routines.
The original inspiration for Strata is a toolkit from include-once.org.
The core toolkit extends the original concept with additional helper procedures.
The storage toolkit provides a normalized interface for working with content from any repository, whether internal, local or remote.
Strata provides a mechanism for packaging, distributing and discovering software, called Market.
What makes Market truly unique as an app store is that it does not require file system access to install software.
Strap, the bootstrapper and package manager of Strata, is special in several ways.
- No file system access
- No checkout involved
- Runs in Fossil
System is an unsafe Strata application for web and shell which manages a repository's code, metadata and cache.