init: Scaffold expected crates with initial dependencies.

This commit is contained in:
2026-03-13 21:53:26 -04:00
parent 165d8ff804
commit de0431778f
6 changed files with 2119 additions and 0 deletions

2017
Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

24
Cargo.toml Normal file
View File

@@ -0,0 +1,24 @@
[workspace]
resolver = "3"
members = [
"crates/pikl-core",
"crates/pikl-tui",
"crates/pikl",
"crates/pikl-test-macros",
]
[workspace.package]
version = "0.1.0"
edition = "2024"
license = "MIT"
repository = "https://git.maplegoosestudio.ca/maple/pikl"
[workspace.lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
unimplemented = "deny"
todo = "deny"
dbg_macro = "deny"
print_stdout = "deny"
print_stderr = "deny"

View File

@@ -0,0 +1,20 @@
[package]
name = "pikl-core"
description = "Core library for pikl-menu. Filterable, hookable, streaming item list engine."
version.workspace = true
edition.workspace = true
license.workspace = true
[lints]
workspace = true
[dependencies]
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
thiserror = "2.0.18"
tokio = { version = "1.50.0", features = ["sync", "io-util", "rt"] }
nucleo-matcher = "0.3.1"
[dev-dependencies]
tokio = { version = "1.50.0", features = ["sync", "process", "io-util", "rt", "macros", "rt-multi-thread"] }
pikl-test-macros = { path = "../pikl-test-macros" }

View File

@@ -0,0 +1,17 @@
[package]
name = "pikl-test-macros"
description = "Test DSL proc macro for pikl-menu. Dev-only, never shipped."
version.workspace = true
edition.workspace = true
license.workspace = true
[lib]
proc-macro = true
# Proc macros have different conventions (panics are compile errors, etc.)
# so we don't inherit workspace lints here.
[dependencies]
syn = { version = "2", features = ["full", "extra-traits"] }
quote = "1"
proc-macro2 = "1"

View File

@@ -0,0 +1,16 @@
[package]
name = "pikl-tui"
description = "TUI frontend for pikl-menu."
version.workspace = true
edition.workspace = true
license.workspace = true
[lints]
workspace = true
[dependencies]
pikl-core = { path = "../pikl-core" }
ratatui = "0.30"
crossterm = { version = "0.29", features = ["event-stream"] }
tokio = { version = "1", features = ["sync", "macros", "rt"] }
futures = "0.3"

25
crates/pikl/Cargo.toml Normal file
View File

@@ -0,0 +1,25 @@
[package]
name = "pikl"
description = "Keyboard-driven, hookable, streaming menu for terminal and desktop. Pipe stuff in, pick stuff out."
version.workspace = true
edition.workspace = true
license.workspace = true
[lints]
workspace = true
[[bin]]
name = "pikl"
path = "src/main.rs"
[dependencies]
pikl-core = { path = "../pikl-core" }
pikl-tui = { path = "../pikl-tui" }
clap = { version = "4", features = ["derive"] }
tokio = { version = "1", features = ["rt-multi-thread", "process", "signal", "io-util"] }
serde_json = "1"
libc = "0.2"
[dev-dependencies]
pikl-test-macros = { path = "../pikl-test-macros" }
libc = "0.2"