Why Space modules

One of the first important requirements around the design of Space is to empower programmers to describe complex behaviors using straightforward rules and script code, taking advantage of decades old base technology provided by UNIX-like tools. The idea of creating more power without adding platform constraints or compromises has always been the primary aim when developing Space. Also, in the event of external dependencies, Space should always aid the user to install all the requirements without extra work.

Space is designed to be lean - small in disk size, with few lines of code and most importantly a public API which is as simple as possible without compromising on function. In order to expand core functionality, users describe an extension, called Module, and define its functions via shell code. Modules can contain their own functions and also refer to functions from other modules which they are dependent on. The resulting composition will become exported as a single script file.This strategy makes it possible to create new modules from existing modules, by mixing, matching and composing them. The exported script enables offline usage and code audition, by delivering POSIX-friendly program output.

Decentralization is one of the core principles of Space. For this reason, user created content can exist in any Git repository.

Previous: Space Modules

Next: What are Space Modules

Edit this page