piki-core

Crates.iopiki-core
lib.rspiki-core
version0.2.0
created_at2025-10-28 06:33:38.135949+00
updated_at2025-11-26 09:13:44.054594+00
descriptionCore library for Piki personal wiki application
homepage
repositoryhttps://github.com/roblillack/piki
max_upload_size
id1904269
size40,199
Robert Lillack (roblillack)

documentation

README

✜ Piki – core library

Core library for Piki personal wiki application

[!IMPORTANT]
This is the crate-level README for the piki-core library only. For overall Piki documentation, see the main repo.

This crate provides the shared functionality used by both the CLI and GUI frontends of Piki. It handles document storage, plugin system, and core wiki operations.

Overview

piki-core is a Rust library that provides the foundation for managing a personal wiki using plain Markdown files. It's designed to be backend-agnostic, allowing different frontends (CLI, GUI, etc.) to build on top of it.

Features

  • Document Store: Manages Markdown files on the filesystem
  • Plugin System: Extensible architecture for dynamic pages
  • Git-friendly: Works seamlessly with version-controlled directories
  • Cross-platform: Works on Windows, macOS, Linux, and BSD
  • No Dependencies on UI: Pure Rust library with no GUI dependencies

Usage

Add this to your Cargo.toml:

[dependencies]
piki-core = "0.1.1"

Architecture

The core library provides:

  • Document Management: Reading, writing, and organizing Markdown files
  • Plugin System: Built-in !index plugin and extensible plugin API for dynamic content
  • Link Resolution: Handling both Markdown links ([text](page.md)) and wiki-style links ([[PageName]])
  • File Operations: Safe file I/O with parent directory creation

Plugin System

The plugin system allows for dynamic pages with a ! prefix. Built-in plugins include:

  • !index - Lists all pages in the wiki

Plugins are read-only and generate content dynamically rather than being stored on disk.

License

MIT License

Commit count: 0

cargo fmt