Skip to content

Snoozle is a toolkit for building curiously simple distributed software applications for personal or small scale operation.

License

Notifications You must be signed in to change notification settings

coner-tech/snoozle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snoozle

Snoozle is a toolkit for building curiously simple distributed software applications for personal or small scale operation.

Where others go to lengths to support operation at internet scale, Snoozle keeps it simple so individuals and small organizations can keep control of their systems and data.

Components

There are a few common themes throughout Snoozle's components:

  • Nodes only ever read/write their own local filesystem.
  • Nodes rely on separate file synchronization software to replicate files to all participating nodes.
  • Records use UUIDs as unique identifiers.

Snoozle Database

Status: In Development

Snoozle Database is a filesystem-based object database.

Features:

  • Simple data structure with one file per record
  • Type-safe, bidirectional key/path mapping
  • Entities stored as JSON with automatic (de)serialization
  • Blobs stored with arbitrary text or data
  • Convenient DSL
entity<Widget.Key, Widget> {
    path = "widgets" / { id } + ".json"
    keyFromPath = { Widget.Key(id = uuidAt(0)) }
    keyFromEntity = { Widget.Key(id = id) }
}

Refer to tech.coner.snoozle.db.sample.SampleDatabase in the test source set for more detail.

Snoozle Queue

Snoozle Queue is a filesystem-based event queue. Status: Queued ;)

About

Snoozle is a toolkit for building curiously simple distributed software applications for personal or small scale operation.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages