Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/superfly/litefs
FUSE-based file system for replicating SQLite databases across a cluster of machines
https://github.com/superfly/litefs
sqlite
Last synced: 28 days ago
JSON representation
FUSE-based file system for replicating SQLite databases across a cluster of machines
- Host: GitHub
- URL: https://github.com/superfly/litefs
- Owner: superfly
- License: apache-2.0
- Created: 2022-04-21T17:03:28.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-24T19:02:39.000Z (about 2 months ago)
- Last Synced: 2024-10-01T20:01:24.818Z (about 1 month ago)
- Topics: sqlite
- Language: Go
- Homepage:
- Size: 953 KB
- Stars: 3,955
- Watchers: 39
- Forks: 95
- Open Issues: 58
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - superfly/litefs - FUSE-based file system for replicating SQLite databases across a cluster of machines (others)
- awesome-sqlite - superfly/litefs: FUSE-based file system for replicating SQLite databases across a cluster of machines
- my-awesome - superfly/litefs - 09 star:4.0k fork:0.1k FUSE-based file system for replicating SQLite databases across a cluster of machines (Go)
README
LiteFS
![GitHub release (latest by date)](https://img.shields.io/github/v/release/superfly/litefs)
![Status](https://img.shields.io/badge/status-beta-blue)
![GitHub](https://img.shields.io/github/license/superfly/litefs)
======LiteFS is a FUSE-based file system for replicating SQLite databases across a
cluster of machines. It works as a passthrough file system that intercepts
writes to SQLite databases in order to detect transaction boundaries and record
changes on a per-transaction level in [LTX files](https://github.com/superfly/ltx).This project is actively maintained but is currently in a beta state. Please
report any bugs as an issue on the GitHub repository.You can find a [Getting Started guide](https://fly.io/docs/litefs/getting-started/)
on [LiteFS' documentation site](https://fly.io/docs/litefs/). Please see the
[ARCHITECTURE.md](/docs/ARCHITECTURE.md) design document for details about how
LiteFS works.## SQLite TCL Test Suite
It's a goal of LiteFS to pass the SQLite TCL test suite, however, this is
currently a work in progress. LiteFS doesn't have database deletion implemented
yet so that causes many tests to fail during teardown.To run a test from the suite against LiteFS, you can use the `Dockerfile.test`
to run it in isolation. First build the Dockerfile:```sh
docker build -t litefs-test -f Dockerfile.test .
```Then run it with the filename of the test you want to run. In this case, we
are running `select1.test`:```sh
docker run --device /dev/fuse --cap-add SYS_ADMIN -it litefs-test select1.test
```## Contributing
LiteFS contributions work a little different than most GitHub projects. If you
have a small bug fix or typo fix, please PR directly to this repository.If you would like to contribute a feature, please follow these steps:
1. Discuss the feature in an issue on this GitHub repository.
2. Create a pull request to **your fork** of the repository.
3. Post a link to your pull request in the issue for consideration.This project has a roadmap and features are added and tested in a certain order.
Additionally, it's likely that code style, implementation details, and test
coverage will need to be tweaked so it's easier to for me to grab your
implementation as a starting point when implementing a feature.