fs_adapter
Version, currently master branch1 version
- master branchlatestOct 20, 2015
github.com/trapped/fs_adapter
Filesystem adapter for waterlink/active_record
Installation
# Add this to your shard.yml
dependencies:
fs_adapter:
github: trapped/fs_adapter
branch: mastermaster is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
- no constraint declared
Dependencies
Runtime Dependencies
- active_record*github: waterlink/active_record.cr
README
fs_adapter
Filesystem adapter for waterlink/active_record.
require it in your code and set FSDB_PATH in your ENV (either from the outside, like from the shell, or from the inside: ENV["FSDB_PATH"] = "/some/folder").
Storage format
Directory structure
Example structure:
./
`--fsdb.lock /* locked on open */
`--fsdb/
`--metadata.lock
`--metadata /* db settings */
`--0_users.lock
`--0_users/ /* table in the form of id_name */
`--metadata.lock
`--metadata /* table settings (fields) */
`--0.lock
`--0 /* single table row */
Lockfiles are implemented using flock(2) and are shared for reads and exclusive for writes.
Databases (schemas)
Metadata contains information that cannot be inferred from the directory structure (currently nothing).
Tables
Contains the table's fields description.
Row fields description
Comma-separated list of colon-separated name/type tuples.
Example: name:string,age:int64
Rows
A row is represented by a single file named after the row's id. It contains the columns' encoded data.
Column data encoding
Field = { Int64 | String }
Int64 = binary data
String = length Int64 + binary data
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
master- Seen
- Oct 20, 2015
- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/trapped/fs_adapter
Metadata
- Created
- Aug 17, 2026
- Updated
- Aug 17, 2026
- Synced
- Aug 17, 2026
- Versions
- 1