Crates.io | glues |
lib.rs | glues |
version | 0.4.0 |
source | src |
created_at | 2024-08-13 03:35:54.164344 |
updated_at | 2024-10-29 16:34:45.480292 |
description | Vim-inspired TUI note-taking app with Git, MongoDB, CSV, and JSON support - privacy-focused and sync-enabled |
homepage | |
repository | https://github.com/gluesql/glues |
max_upload_size | |
id | 1335438 |
size | 182,123 |
Glues is a Vim-inspired, terminal-based (TUI) note-taking application that offers flexible and secure storage options. You can store your notes locally, choose Git for distributed version control, or opt for MongoDB for centralized data management. This flexibility allows you to manage your notes in the way that best suits your workflow, whether you prefer the simplicity of local files, the collaboration capabilities of Git, or the scalability of MongoDB. For additional support, log file formats such as CSV and JSON are also available.
Glues is designed with a core architecture that operates independently of the TUI, providing robust state management and action handling. Although the current frontend is TUI-based, the architecture allows for easy integration with other frontends such as GUI, iOS, Android, or even running headlessly without a UI. The TUI interface clearly displays the current state and available actions, making it intuitive and easy to use.
With no reliance on third-party services, Glues ensures that your data remains private and fully under your control. Currently, it supports Git and MongoDB for storage, and we plan to integrate additional storage options through GlueSQL, giving you even more flexibility in managing your data. The core concept behind Glues is to empower users to choose how their data is handled—whether through local files, Git, MongoDB, or future storage options—without any dependence on a central authority. This makes Glues a sync-enabled application that prioritizes user autonomy and privacy.
First, ensure Rust is installed. Then, install Glues by running:
cargo install glues
We're working on making Glues available through more package managers soon. For now, installing via Cargo is the way to go.
Glues offers various storage options to suit your needs:
Instant: Data is stored in memory and only persists while the app is running. This option is useful for testing or temporary notes as it is entirely volatile.
Local: Notes are stored locally as separate files. This is the default option for users who prefer a simple, file-based approach without any remote synchronization.
Git:
path
, remote
, and branch
.path
should point to an existing local Git repository. For example, you can clone a GitHub repository and use that path.remote
and branch
specify the target remote repository and branch for synchronization.To see how notes and directories are stored using Git, you can refer to the Glues sample repository.
MongoDB:
CSV or JSON:
Here is our plan for Glues and the features we aim to implement. Below is a list of upcoming improvements to make Glues more useful and versatile. If you have suggestions for new features, please feel free to open a GitHub issue.
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.