#tui #note-taking #cursive #data-privacy #csv #version-control #notes-app

app glues

Lightweight TUI note-taking app with Git, CSV, and JSON support - privacy-focused and sync-enabled

4 releases

0.2.2 Aug 27, 2024
0.2.1 Aug 27, 2024
0.2.0 Aug 26, 2024
0.1.0 Aug 13, 2024

#63 in Filesystem

Download history 125/week @ 2024-08-11 7/week @ 2024-08-18 405/week @ 2024-08-25 20/week @ 2024-09-01

557 downloads per month

Apache-2.0

105KB
3K SLoC

Glues

crates.io LICENSE Rust Chat

Flexible, privacy-first TUI note-taking app with multiple storage options

Glues is a lightweight, terminal-based (TUI) note-taking application that offers flexible and secure storage options. You can choose to store your notes locally in CSV or JSON formats, or utilize Git as a storage option for version control. This flexibility allows you to manage your notes in the way that best suits your workflow, whether you prefer the simplicity of local files or the robustness of Git integration.

Glues is designed with a core architecture that operates independently of the TUI, providing robust state management and action handling. 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 for storage, but 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, or future storage options—without any dependence on a central authority. This makes Glues a sync-enabled application that prioritizes user autonomy and privacy.

Glues Demo

Click the image above to watch the demo video and see Glues in action!

Installation

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.

Usage

Glues offers five storage options to suit your needs:

  • Instant: Data is stored in memory and only persists while the app is running. This is useful for testing purposes.

  • CSV: Notes are saved in CSV format. When you provide a path, Glues will load existing data if available or create a new file if none exists.

  • JSON: Notes are stored in JSON format, specifically using JSONL (JSON Lines). This functions similarly to CSV storage, allowing you to provide a path to load or create data.

  • File: Glues uses a custom storage format where each note and directory is stored as separate files. This is ideal for users who prefer a more granular file-based approach.

  • Git:

    • Git storage requires three inputs: path, remote, and branch.
    • The path should point to an existing local Git repository, similar to the file storage path. For example, you can clone a GitHub repository and use that path.
    • The remote and branch specify the target remote repository and branch for synchronization.
    • When you modify notes or directories, Glues will automatically sync changes with the specified remote repository.

    To see how notes and directories are stored using Git, you can refer to the Glues sample repository.

License

This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.

Dependencies

~23–36MB
~582K SLoC