| Crates.io | linkleaf-core |
| lib.rs | linkleaf-core |
| version | 0.1.1 |
| created_at | 2025-09-04 19:04:10.37088+00 |
| updated_at | 2025-09-11 11:30:47.725465+00 |
| description | Local-first protobuf-only link feed manager (linkleaf.v1) library |
| homepage | https://github.com/doriancodes/linkleaf/tree/main/crates/linkleaf-core |
| repository | https://github.com/doriancodes/linkleaf |
| max_upload_size | |
| id | 1824646 |
| size | 64,238 |
Manage protobuf-only Linkleaf feeds (linkleaf.v1)
A tiny library for storing, updating, and querying a personal link feed backed by a compact Protocol Buffers file. It gives you ergonomic helpers to:
It’s built on prost (for protobuf).
// Generated by prost (simplified):
pub struct Link {
pub id: String, // UUID v4 (string)
pub title: String,
pub url: String,
pub date: String, // "YYYY-MM-DD HH:MM:SS" (local time)
pub summary: String,
pub tags: Vec<String>, // normalized via parse_tags
pub via: String, // attribution/source
}
pub struct Feed {
pub version: i32, // currently initialized to 1 on new feeds
pub links: Vec<Link>, // newest-first
// (other fields like `title` may exist; not required by the helpers)
}
Defined in feed.proto:
Link
id (string) — auto-derived if omittedtitle (string, required)url (string, required)date (string, YYYY-MM-DD)summary (optional string)tags (optional repeated strings)via (optional string)Feed
title (string)version (uint32)links (repeated Link, newest first)# run the minimal flow
cargo run --example quickstart
# upsert by id (moves updated link to front)
cargo run --example upsert_by_id
# upsert by URL when id=None
cargo run --example upsert_by_url
# tag & date filtering
cargo run --example filter