diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-07-09 21:43:23 +0200 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-07-09 21:43:23 +0200 |
| commit | 3223d93cb3c77ab02aa0a35f2a8314e447cee9a4 (patch) | |
| tree | 3971a1f37f5fe3cadb747c5229a0d54e868e45e3 /crates/daemon | |
| parent | fix(client/sync): Pass through precise error on `SyncError::WrongKey` (diff) | |
| download | atuin-3223d93cb3c77ab02aa0a35f2a8314e447cee9a4.zip | |
chore: Separate daemon, client, server, and lib into crates
Diffstat (limited to '')
| -rw-r--r-- | crates/daemon/Cargo.toml | 103 | ||||
| -rw-r--r-- | crates/daemon/build.rs | 48 | ||||
| -rw-r--r-- | crates/daemon/db/client-meta-migrations/20260203030924_create_meta.sql (renamed from crates/turtle/db/client-meta-migrations/20260203030924_create_meta.sql) | 0 | ||||
| -rw-r--r-- | crates/daemon/db/client-migrations/20210422143411_create_history.sql (renamed from crates/turtle/db/client-migrations/20210422143411_create_history.sql) | 0 | ||||
| -rw-r--r-- | crates/daemon/db/client-migrations/20220505083406_create-events.sql (renamed from crates/turtle/db/client-migrations/20220505083406_create-events.sql) | 0 | ||||
| -rw-r--r-- | crates/daemon/db/client-migrations/20220806155627_interactive_search_index.sql (renamed from crates/turtle/db/client-migrations/20220806155627_interactive_search_index.sql) | 0 | ||||
| -rw-r--r-- | crates/daemon/db/client-migrations/20230315220114_drop-events.sql (renamed from crates/turtle/db/client-migrations/20230315220114_drop-events.sql) | 0 | ||||
| -rw-r--r-- | crates/daemon/db/client-migrations/20230319185725_deleted_at.sql (renamed from crates/turtle/db/client-migrations/20230319185725_deleted_at.sql) | 0 | ||||
| -rw-r--r-- | crates/daemon/db/client-migrations/20260224000100_history_author_intent.sql (renamed from crates/turtle/db/client-migrations/20260224000100_history_author_intent.sql) | 0 | ||||
| -rw-r--r-- | crates/daemon/db/client-record-migrations/20230531212437_create-records.sql (renamed from crates/turtle/db/client-record-migrations/20230531212437_create-records.sql) | 0 | ||||
| -rw-r--r-- | crates/daemon/db/client-record-migrations/20231127090831_create-store.sql (renamed from crates/turtle/db/client-record-migrations/20231127090831_create-store.sql) | 0 | ||||
| -rw-r--r-- | crates/daemon/proto/control.proto (renamed from crates/turtle/proto/control.proto) | 0 | ||||
| -rw-r--r-- | crates/daemon/proto/history.proto (renamed from crates/turtle/proto/history.proto) | 0 | ||||
| -rw-r--r-- | crates/daemon/proto/search.proto (renamed from crates/turtle/proto/search.proto) | 0 | ||||
| -rw-r--r-- | crates/daemon/proto/semantic.proto (renamed from crates/turtle/proto/semantic.proto) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/client.rs (renamed from crates/turtle/src/atuin_daemon/client.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/components/history.rs (renamed from crates/turtle/src/atuin_daemon/components/history.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/components/mod.rs (renamed from crates/turtle/src/atuin_daemon/components/mod.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/components/search.rs (renamed from crates/turtle/src/atuin_daemon/components/search.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/components/semantic.rs (renamed from crates/turtle/src/atuin_daemon/components/semantic.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/components/sync.rs (renamed from crates/turtle/src/atuin_daemon/components/sync.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/control/mod.rs (renamed from crates/turtle/src/atuin_daemon/control/mod.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/daemon.rs (renamed from crates/turtle/src/atuin_daemon/daemon.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/events.rs (renamed from crates/turtle/src/atuin_daemon/events.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/generated.rs (renamed from crates/turtle/src/atuin_daemon/generated.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/lib.rs (renamed from crates/turtle/src/atuin_daemon/mod.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/search/mod.rs (renamed from crates/turtle/src/atuin_daemon/search/mod.rs) | 0 | ||||
| -rw-r--r-- | crates/daemon/src/server.rs (renamed from crates/turtle/src/atuin_daemon/server.rs) | 0 |
28 files changed, 151 insertions, 0 deletions
diff --git a/crates/daemon/Cargo.toml b/crates/daemon/Cargo.toml new file mode 100644 index 00000000..509595b0 --- /dev/null +++ b/crates/daemon/Cargo.toml @@ -0,0 +1,103 @@ +[package] +name = "turtle-daemon" +edition = "2024" +description = "daemon, that controls the history db" +readme = "./README.md" + +rust-version = { workspace = true } +version = { workspace = true } +authors = { workspace = true } +license = { workspace = true } +homepage = { workspace = true } +repository = { workspace = true } + +[dependencies] +async-trait = "0.1.58" +atuin-nucleo-matcher = { workspace = true } +atuin-nucleo = { workspace = true } +axum = "0.8" +base64 = "0.22" +clap = { version = "4.5.7", features = ["derive"] } +clap_complete = "4.5.8" +clap_complete_nushell = "4.5.4" +colored = "2.0.4" +config = { version = "0.15.8", default-features = false, features = ["toml"] } +crossterm = {version = "0.29.0", features = ["use-dev-tty", "serde"] } +crypto_secretbox = "0.1.1" +dashmap = "6.1.0" +directories = "6.0.0" +eyre = "0.6" +fs-err = "3.1" +fs4 = "0.13.1" +fuzzy-matcher = "0.3.7" +hyper-util = "0.1" +indicatif = "0.18.0" +interim = { version = "0.2.0", features = ["time_0_3"] } +itertools = "0.14.0" +lasso = { version = "0.7", features = ["multi-threaded"] } +log = "0.4" +metrics = "0.24" +metrics-exporter-prometheus = { version = "0.18", default-features = false } +minspan = "0.1.5" +norm = { version = "0.1.1", features = ["fzf-v2"] } +notify = "7" +prost = "0.14" +rand = { version = "0.8.5", features = ["std"] } +ratatui = "0.30.0" +regex = "1.10.5" +reqwest = { version = "0.13", features = ["json", "rustls-no-provider", "stream"], default-features = false } +rmp = { version = "0.8.14" } +runtime-format = "0.1.3" +rustix = { version = "1.1.4", features = ["process", "fs"] } +rustls = { version = "0.23", default-features = false, features = [ "ring", "std", "tls12", ] } +rusty_paserk = { version = "0.5.0", default-features = false, features = [ "v4", "serde", ] } +rusty_paseto = { version = "0.8.0", default-features = false } +semver = "1.0.20" +serde = { version = "1.0.202", features = ["derive"] } +serde_json = "1.0.119" +serde_regex = "1.1.0" +serde_with = "3.8.1" +shellexpand = "3" +sql-builder = "3" +sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "time", "postgres", "uuid", "sqlite", "regexp"] } +thiserror = "2" +time = { version = "0.3.47", features = [ "serde-human-readable", "macros", "local-offset", "macros", "formatting", "parsing"] } +tokio = { version = "1", features = ["full"] } +tokio-stream = { version = "0.1.14", features = ["net"] } +toml_edit = "0.25.4" +tonic = "0.14" +tonic-prost = "0.14" +tower = "0.5" +tower-http = { version = "0.6", features = ["trace"] } +tracing = "0.1" +tracing-appender = "0.2" +tracing-subscriber = { version = "0.3", features = ["ansi", "fmt", "registry", "env-filter", "json"] } +typed-builder = "0.18.2" +unicode-segmentation = "1.11.0" +unicode-width = "0.2" +url = "2.5.2" +uuid = { version = "1.9", features = ["v4", "v7", "serde"] } +vt100 = "0.16" +whoami = "2.1.0" + +[target.'cfg(target_os = "linux")'.dependencies] +arboard = { version = "3.4", default-features = false, features = [ "wayland-data-control", ] } +listenfd = "1.0.1" + +[target.'cfg(unix)'.dependencies] +daemonize = "0.5.0" +portable-pty = "0.9" +signal-hook = "0.3" + +[dev-dependencies] +tokio = { version = "1", features = ["full"] } + +[build-dependencies] +protox = "0.9" +tonic-prost-build = "0.14" + +[package.metadata.docs.rs] +all-features = true + +[lints] +workspace = true diff --git a/crates/daemon/build.rs b/crates/daemon/build.rs new file mode 100644 index 00000000..ad4bc3c8 --- /dev/null +++ b/crates/daemon/build.rs @@ -0,0 +1,48 @@ +use std::process::Command; +use std::{env, fs, path::PathBuf}; + +use protox::Compiler; +use protox::prost::Message; + +fn main() -> Result<(), std::io::Error> { + { + let output = Command::new("git").args(["rev-parse", "HEAD"]).output(); + + let sha = match output { + Ok(sha) => String::from_utf8(sha.stdout).unwrap(), + Err(_) => String::from("NO_GIT"), + }; + + println!("cargo:rustc-env=GIT_HASH={sha}"); + } + + { + let proto_paths = [ + "proto/history.proto", + "proto/search.proto", + "proto/control.proto", + "proto/semantic.proto", + ]; + let proto_include_dirs = ["proto"]; + + let file_descriptor_set = Compiler::new(proto_include_dirs) + .map_err(std::io::Error::other)? + .include_source_info(true) + .include_imports(true) + .open_files(proto_paths) + .map_err(std::io::Error::other)? + .file_descriptor_set(); + + let file_descriptor_path = PathBuf::from(env::var_os("OUT_DIR").expect("OUT_DIR not set")) + .join("file_descriptor_set.bin"); + fs::write(&file_descriptor_path, file_descriptor_set.encode_to_vec()).unwrap(); + + tonic_prost_build::configure() + .build_server(true) + .file_descriptor_set_path(&file_descriptor_path) + .skip_protoc_run() + .compile_protos(&proto_paths, &proto_include_dirs)?; + } + + Ok(()) +} diff --git a/crates/turtle/db/client-meta-migrations/20260203030924_create_meta.sql b/crates/daemon/db/client-meta-migrations/20260203030924_create_meta.sql index 26c3c142..26c3c142 100644 --- a/crates/turtle/db/client-meta-migrations/20260203030924_create_meta.sql +++ b/crates/daemon/db/client-meta-migrations/20260203030924_create_meta.sql diff --git a/crates/turtle/db/client-migrations/20210422143411_create_history.sql b/crates/daemon/db/client-migrations/20210422143411_create_history.sql index 1f3f8686..1f3f8686 100644 --- a/crates/turtle/db/client-migrations/20210422143411_create_history.sql +++ b/crates/daemon/db/client-migrations/20210422143411_create_history.sql diff --git a/crates/turtle/db/client-migrations/20220505083406_create-events.sql b/crates/daemon/db/client-migrations/20220505083406_create-events.sql index f6cafeba..f6cafeba 100644 --- a/crates/turtle/db/client-migrations/20220505083406_create-events.sql +++ b/crates/daemon/db/client-migrations/20220505083406_create-events.sql diff --git a/crates/turtle/db/client-migrations/20220806155627_interactive_search_index.sql b/crates/daemon/db/client-migrations/20220806155627_interactive_search_index.sql index b5770e62..b5770e62 100644 --- a/crates/turtle/db/client-migrations/20220806155627_interactive_search_index.sql +++ b/crates/daemon/db/client-migrations/20220806155627_interactive_search_index.sql diff --git a/crates/turtle/db/client-migrations/20230315220114_drop-events.sql b/crates/daemon/db/client-migrations/20230315220114_drop-events.sql index fe3cae17..fe3cae17 100644 --- a/crates/turtle/db/client-migrations/20230315220114_drop-events.sql +++ b/crates/daemon/db/client-migrations/20230315220114_drop-events.sql diff --git a/crates/turtle/db/client-migrations/20230319185725_deleted_at.sql b/crates/daemon/db/client-migrations/20230319185725_deleted_at.sql index 6c422abc..6c422abc 100644 --- a/crates/turtle/db/client-migrations/20230319185725_deleted_at.sql +++ b/crates/daemon/db/client-migrations/20230319185725_deleted_at.sql diff --git a/crates/turtle/db/client-migrations/20260224000100_history_author_intent.sql b/crates/daemon/db/client-migrations/20260224000100_history_author_intent.sql index 2bed17e9..2bed17e9 100644 --- a/crates/turtle/db/client-migrations/20260224000100_history_author_intent.sql +++ b/crates/daemon/db/client-migrations/20260224000100_history_author_intent.sql diff --git a/crates/turtle/db/client-record-migrations/20230531212437_create-records.sql b/crates/daemon/db/client-record-migrations/20230531212437_create-records.sql index 4f4b304a..4f4b304a 100644 --- a/crates/turtle/db/client-record-migrations/20230531212437_create-records.sql +++ b/crates/daemon/db/client-record-migrations/20230531212437_create-records.sql diff --git a/crates/turtle/db/client-record-migrations/20231127090831_create-store.sql b/crates/daemon/db/client-record-migrations/20231127090831_create-store.sql index 53d78860..53d78860 100644 --- a/crates/turtle/db/client-record-migrations/20231127090831_create-store.sql +++ b/crates/daemon/db/client-record-migrations/20231127090831_create-store.sql diff --git a/crates/turtle/proto/control.proto b/crates/daemon/proto/control.proto index 06347902..06347902 100644 --- a/crates/turtle/proto/control.proto +++ b/crates/daemon/proto/control.proto diff --git a/crates/turtle/proto/history.proto b/crates/daemon/proto/history.proto index 59c12471..59c12471 100644 --- a/crates/turtle/proto/history.proto +++ b/crates/daemon/proto/history.proto diff --git a/crates/turtle/proto/search.proto b/crates/daemon/proto/search.proto index 6b84acbd..6b84acbd 100644 --- a/crates/turtle/proto/search.proto +++ b/crates/daemon/proto/search.proto diff --git a/crates/turtle/proto/semantic.proto b/crates/daemon/proto/semantic.proto index 07e550c8..07e550c8 100644 --- a/crates/turtle/proto/semantic.proto +++ b/crates/daemon/proto/semantic.proto diff --git a/crates/turtle/src/atuin_daemon/client.rs b/crates/daemon/src/client.rs index 2ea7ffc5..2ea7ffc5 100644 --- a/crates/turtle/src/atuin_daemon/client.rs +++ b/crates/daemon/src/client.rs diff --git a/crates/turtle/src/atuin_daemon/components/history.rs b/crates/daemon/src/components/history.rs index b4f91b06..b4f91b06 100644 --- a/crates/turtle/src/atuin_daemon/components/history.rs +++ b/crates/daemon/src/components/history.rs diff --git a/crates/turtle/src/atuin_daemon/components/mod.rs b/crates/daemon/src/components/mod.rs index 5a93fbc1..5a93fbc1 100644 --- a/crates/turtle/src/atuin_daemon/components/mod.rs +++ b/crates/daemon/src/components/mod.rs diff --git a/crates/turtle/src/atuin_daemon/components/search.rs b/crates/daemon/src/components/search.rs index bcd60cc4..bcd60cc4 100644 --- a/crates/turtle/src/atuin_daemon/components/search.rs +++ b/crates/daemon/src/components/search.rs diff --git a/crates/turtle/src/atuin_daemon/components/semantic.rs b/crates/daemon/src/components/semantic.rs index e1d376de..e1d376de 100644 --- a/crates/turtle/src/atuin_daemon/components/semantic.rs +++ b/crates/daemon/src/components/semantic.rs diff --git a/crates/turtle/src/atuin_daemon/components/sync.rs b/crates/daemon/src/components/sync.rs index 20d49839..20d49839 100644 --- a/crates/turtle/src/atuin_daemon/components/sync.rs +++ b/crates/daemon/src/components/sync.rs diff --git a/crates/turtle/src/atuin_daemon/control/mod.rs b/crates/daemon/src/control/mod.rs index 79398d61..79398d61 100644 --- a/crates/turtle/src/atuin_daemon/control/mod.rs +++ b/crates/daemon/src/control/mod.rs diff --git a/crates/turtle/src/atuin_daemon/daemon.rs b/crates/daemon/src/daemon.rs index 80aaeef8..80aaeef8 100644 --- a/crates/turtle/src/atuin_daemon/daemon.rs +++ b/crates/daemon/src/daemon.rs diff --git a/crates/turtle/src/atuin_daemon/events.rs b/crates/daemon/src/events.rs index d379277d..d379277d 100644 --- a/crates/turtle/src/atuin_daemon/events.rs +++ b/crates/daemon/src/events.rs diff --git a/crates/turtle/src/atuin_daemon/generated.rs b/crates/daemon/src/generated.rs index a3ea4d9d..a3ea4d9d 100644 --- a/crates/turtle/src/atuin_daemon/generated.rs +++ b/crates/daemon/src/generated.rs diff --git a/crates/turtle/src/atuin_daemon/mod.rs b/crates/daemon/src/lib.rs index 5f0f489e..5f0f489e 100644 --- a/crates/turtle/src/atuin_daemon/mod.rs +++ b/crates/daemon/src/lib.rs diff --git a/crates/turtle/src/atuin_daemon/search/mod.rs b/crates/daemon/src/search/mod.rs index 02c79c9c..02c79c9c 100644 --- a/crates/turtle/src/atuin_daemon/search/mod.rs +++ b/crates/daemon/src/search/mod.rs diff --git a/crates/turtle/src/atuin_daemon/server.rs b/crates/daemon/src/server.rs index 36954cca..36954cca 100644 --- a/crates/turtle/src/atuin_daemon/server.rs +++ b/crates/daemon/src/server.rs |
