diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..0a5cfcf --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,27 @@ +[workspace] +resolver = "2" +members = [ + "crates/spacesh-proto", + "crates/spacesh-pty", + "crates/spacesh-core", + "crates/spaceshd", +] + +[workspace.package] +edition = "2021" +version = "0.1.0" + +[workspace.dependencies] +tokio = { version = "1", features = ["full"] } +tokio-util = { version = "0.7", features = ["codec"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +bytes = "1" +base64 = "0.22" +anyhow = "1" +thiserror = "1" +futures = "0.3" +portable-pty = "0.8" +alacritty_terminal = "0.25" +fs2 = "0.4" +dirs = "5" diff --git a/crates/spacesh-core/Cargo.toml b/crates/spacesh-core/Cargo.toml new file mode 100644 index 0000000..01718ba --- /dev/null +++ b/crates/spacesh-core/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "spacesh-core" +edition.workspace = true +version.workspace = true + +[dependencies] +alacritty_terminal.workspace = true +serde.workspace = true diff --git a/crates/spacesh-core/src/lib.rs b/crates/spacesh-core/src/lib.rs new file mode 100644 index 0000000..1b486d8 --- /dev/null +++ b/crates/spacesh-core/src/lib.rs @@ -0,0 +1 @@ +// modules added in Tasks 11-12 diff --git a/crates/spacesh-proto/Cargo.toml b/crates/spacesh-proto/Cargo.toml new file mode 100644 index 0000000..4fdb8d7 --- /dev/null +++ b/crates/spacesh-proto/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "spacesh-proto" +edition.workspace = true +version.workspace = true + +[dependencies] +serde.workspace = true +serde_json.workspace = true +bytes.workspace = true +thiserror.workspace = true +tokio = { workspace = true } +tokio-util.workspace = true diff --git a/crates/spacesh-proto/src/codec.rs b/crates/spacesh-proto/src/codec.rs new file mode 100644 index 0000000..0ca532e --- /dev/null +++ b/crates/spacesh-proto/src/codec.rs @@ -0,0 +1 @@ +// populated in Task 2 diff --git a/crates/spacesh-proto/src/ids.rs b/crates/spacesh-proto/src/ids.rs new file mode 100644 index 0000000..8bf8d9b --- /dev/null +++ b/crates/spacesh-proto/src/ids.rs @@ -0,0 +1 @@ +// populated in Task 1 diff --git a/crates/spacesh-proto/src/lib.rs b/crates/spacesh-proto/src/lib.rs new file mode 100644 index 0000000..385b773 --- /dev/null +++ b/crates/spacesh-proto/src/lib.rs @@ -0,0 +1,7 @@ +pub mod codec; +pub mod ids; +pub mod message; + +// re-exports added in Task 1 when types are defined +// pub use ids::{SurfaceId, WorkspaceId}; +// pub use message::{Cmd, Envelope, ErrorBody, Evt}; diff --git a/crates/spacesh-proto/src/message.rs b/crates/spacesh-proto/src/message.rs new file mode 100644 index 0000000..8bf8d9b --- /dev/null +++ b/crates/spacesh-proto/src/message.rs @@ -0,0 +1 @@ +// populated in Task 1 diff --git a/crates/spacesh-pty/Cargo.toml b/crates/spacesh-pty/Cargo.toml new file mode 100644 index 0000000..b42733a --- /dev/null +++ b/crates/spacesh-pty/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "spacesh-pty" +edition.workspace = true +version.workspace = true + +[dependencies] +portable-pty.workspace = true +tokio.workspace = true +bytes.workspace = true +anyhow.workspace = true diff --git a/crates/spacesh-pty/src/lib.rs b/crates/spacesh-pty/src/lib.rs new file mode 100644 index 0000000..9736bfa --- /dev/null +++ b/crates/spacesh-pty/src/lib.rs @@ -0,0 +1 @@ +// PtyHandle implemented in Task 3. diff --git a/crates/spaceshd/Cargo.toml b/crates/spaceshd/Cargo.toml new file mode 100644 index 0000000..b156157 --- /dev/null +++ b/crates/spaceshd/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "spaceshd" +edition.workspace = true +version.workspace = true + +[[bin]] +name = "spaceshd" +path = "src/main.rs" + +[dependencies] +spacesh-proto = { path = "../spacesh-proto" } +spacesh-pty = { path = "../spacesh-pty" } +spacesh-core = { path = "../spacesh-core" } +tokio.workspace = true +tokio-util.workspace = true +serde.workspace = true +serde_json.workspace = true +bytes.workspace = true +base64.workspace = true +anyhow.workspace = true +thiserror.workspace = true +futures.workspace = true +fs2.workspace = true +dirs.workspace = true diff --git a/crates/spaceshd/src/main.rs b/crates/spaceshd/src/main.rs new file mode 100644 index 0000000..83ba4c1 --- /dev/null +++ b/crates/spaceshd/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("spaceshd skeleton"); +}