1
0
Fork
You've already forked osis
0
No description
  • Rust 99.5%
  • Shell 0.5%
2026年03月27日 05:02:23 -07:00
aspect IMPL: Add text searching 2026年03月27日 04:46:22 -07:00
core IMPL: Specify sqlite storage 2026年03月27日 05:02:23 -07:00
data IMPL: Add core 2026年03月18日 09:39:16 -07:00
examples IMPL: Specify sqlite storage 2026年03月27日 05:02:23 -07:00
spec SPEC: Specify sqlite storage 2026年03月27日 04:50:11 -07:00
store IMPL: Specify sqlite storage 2026年03月27日 05:02:23 -07:00
sync IMPL: Specify sqlite storage 2026年03月27日 05:02:23 -07:00
tid IMPL: Add data and serialization 2026年03月17日 22:31:41 -07:00
.editorconfig Add initial files 2026年03月07日 22:54:37 -08:00
.gitignore IMPL: Add tid crate 2026年03月08日 00:20:45 -08:00
Cargo.toml IMPL: Replace kv-sync with merkle trees sync 2026年03月27日 02:12:11 -07:00
CLAUDE.md Set up for Claude Code 2026年03月08日 00:10:31 -08:00
impl-commit.sh IMPL: Replace kv-sync with merkle trees sync 2026年03月27日 02:12:11 -07:00
LICENSE Add initial files 2026年03月07日 22:54:37 -08:00
README.md IMPL: Replace kv-sync with merkle trees sync 2026年03月27日 02:12:11 -07:00
spec-commit.sh Set up for Claude Code 2026年03月08日 00:10:31 -08:00

osis

Open Structured Information System

osis is a decentralized, reactive data layer for interconnected applications.

Things

A thing is an untyped entity identified by a Thing ID (tid). Tids are 16-character base-64 URL encoded UUIDs. Permissions and ownership happen on a per-thing basis. osis data is stored as aspects of a thing.

Aspects

An aspect is a piece of data attached to a thing. Each aspect is identified by a tid-aspect key pair. An aspect key is a slash-separated identifier, like /note/body. Aspect keys can be used to look up data type for their aspect's value.

This repo contains the following crates:

  • core: the core osis database
  • tid: osis's UUID
  • aspect: the schema of osis
  • data: osis types and values
  • store: local storage of things and their aspects
  • sync: peer-to-peer sync via merkle trees
  • examples: example apps and programs