corundum

Clipboard Manager & Secure Vault

Corundum adalah clipboard manager dan vault yang berjalan di system tray (headless).


Layer

Tiga modul utama yang dipisah berdasarkan tugas:

+-------------------------------------------------------+
|                       CLI                             |
|               (Antarmuka & Tray)                      |
+---------------------------+---------------------------+
                            | IPC (Socket / Pipe)
+---------------------------v---------------------------+
|                     daemon                            |
|           (Logika, SQLite/SQLCipher)                  |
+---------------------------+---------------------------+
                            | FFI / C-Bindings
+---------------------------v---------------------------+
|                      hook                             |
|             (Komunikasi & Input)                      |
+-------------------------------------------------------+

1. corundum-hook

Pustaka dinamis (.dll, .so, atau .dylib).

  • Fungsi: Menangani komunikasi dengan sistem operasi (OS hook) dan manipulasi papan klip aktif.
  • Manajemen Memori: Alokasi memori manual via alokator bawaan.
  • Kompilasi: Kompilasi bersyarat (@import("builtin")) untuk Windows API, macOS Cocoa, dan Linux (X11/Wayland).

2. corundum-daemon

Berkas biner eksekusi utama yang berjalan di latar belakang / RAM.

  • Fungsi: Menjembatani C-Bindings dengan logika dan pengolahan data teks.
  • Penyimpanan: SQLite terenkripsi via SQLCipher (.db).
  • Konkurensi: Pemrosesan antrean masukan papan klip secara non-blocking via Fiber.
  • IPC (Komunikasi Antar Proses): Unix Domain Socket (macOS/Linux) atau Named Pipes (Windows).

3. corundum-cli

Skrip antarmuka ringan.

  • Fungsi: Klien IPC dan manajer System Tray.
  • Dependensi: Terminal CLI bawaan OS dan penyaring terminal (seperti FZF).
  • Arsitektur: Stateless (semua status dikelola daemon).

🔄 Flow

1. Lapisan Bawah (hook)

  • Perekaman Papan Klip: Mengaitkan ke API sistem operasi (Windows API, macOS NSPasteboard, Linux X11/Wayland).
  • Penyaringan Keamanan: Memeriksa flag pengecualian dari aplikasi pengelola kata sandi.
  • Pengiriman Data: Meneruskan data teks mentah ke lapisan Middleware melalui FFI.
  • Input: Memanggil API sistem operasi untuk penekanan tombol (Ctrl+V) atau manipulasi buffer.

2. Lapisan Tengah (daemon)

  • Penerimaan Data: Menerima data masukan secara konkuren.
  • Enkripsi: Mengambil kunci dari brankas OS dan mengenkripsi teks via SQLCipher.
  • Penyimpanan: Menyimpan data terenkripsi ke basis data SQLite lokal.
  • Server Soket: Membuka Unix Domain Socket atau Named Pipe untuk melayani kueri pencarian.

3. Lapisan Atas (cli)

  • Pendengar Pintasan: Memantau pintasan papan kekunci global dari latar belakang (tray).
  • Interaksi Terminal: Membuka antarmuka pencarian terminal (seperti FZF) yang terhubung ke soket.
  • Output: Mengirim ID teks terpilih ke daemon untuk didekripsi dan diteruskan ke modul hook agar ditempelkan (paste).

🔒 Skema Keamanan Brankas (Secure Vault)

Kunci dekripsi basis data corundum tidak pernah disimpan dalam bentuk teks biasa. Kunci tersebut dibuat secara acak saat instalasi pertama, diserahkan kepada Keyring/Credential Manager bawaan sistem operasi, dan hanya bisa diminta kembali oleh proses corundum yang memiliki izin sah.


⚙️ Build

1. Prasyarat

  • Zig: Versi 0.11.0 atau yang lebih baru (untuk membangun corundum-hook).
  • Crystal: Versi 1.10.0 atau yang lebih baru (untuk membangun corundum-daemon).
  • Ruby: Versi 3.0 atau yang lebih baru (untuk antarmuka terminal).

2. Modul Hook

cd corundum-hook
zig build -Doptimize=ReleaseSafe

Pustaka dinamis (berkas .so, .dll, atau .dylib) akan dihasilkan di dalam map zig-out/lib/. Pustaka ini harus berada di (path) yang sama dengan eksekusi daemon agar pengikatan C (C-Binding) berhasil dimuat.

3. Daemon

cd corundum-daemon
shards install
crystal build src/main.cr --release -o corundum-daemon

4. Klien

Skrip CLI dapat langsung dijalankan untuk berinteraksi dengan daemon:

ruby corundum-cli/bin/corundum start

Kemudian, dari terminal lain:

ruby corundum-cli/bin/corundum cari
Repository

corundum

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 0
  • about 4 hours ago
  • August 1, 2026
License

MIT License

Links
Synced at

Sat, 01 Aug 2026 16:05:58 GMT

Languages