Cleanup: move all Rust code into a crates/ directory.

This commit is contained in:
Sebastian Jeltsch 2025-08-06 19:01:36 +02:00
parent d23b698ced
commit 7a8c31c8e9
482 changed files with 526 additions and 484 deletions

View file

@ -13,4 +13,4 @@
# rustflags = ["-C", "target-feature=+crt-static"]
[env]
TS_RS_EXPORT_DIR = { value = "./trailbase-assets/js/bindings", relative = true }
TS_RS_EXPORT_DIR = { value = "./crates/assets/js/bindings", relative = true }

2
.gitmodules vendored
View file

@ -1,3 +1,3 @@
[submodule "vendor/sqlean/bundled/sqlean"]
path = vendor/sqlean/bundled/sqlean
path = crates/sqlean/bundled/sqlean
url = https://github.com/trailbaseio/sqlean

View file

@ -1,4 +1,4 @@
exclude: '(trailbase-assets/js/bindings|trailbase-schema/bindings|vendor)/.*'
exclude: '(crates/assets/js/bindings|crates/schema/bindings|vendor)/.*'
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks

View file

@ -1,33 +1,33 @@
[workspace]
resolver = "2"
members = [
"client/rust",
"crates/apalis",
"crates/assets",
"crates/build",
"crates/cli",
"crates/client",
"crates/core",
"crates/extension",
"crates/js-runtime",
"crates/qs",
"crates/refinery",
"crates/schema",
"crates/sqlean",
"crates/sqlite",
"docs/examples/record_api_rs",
"examples/custom-binary",
"trailbase-apalis",
"trailbase-assets",
"trailbase-build",
"trailbase-cli",
"trailbase-core",
"trailbase-extension",
"trailbase-js",
"trailbase-qs",
"trailbase-refinery",
"trailbase-schema",
"trailbase-sqlite",
"vendor/sqlean",
]
default-members = [
"client/rust",
"trailbase-assets",
"trailbase-build",
"trailbase-cli",
"trailbase-core",
"trailbase-extension",
"trailbase-js",
"trailbase-qs",
"trailbase-schema",
"trailbase-sqlite",
"crates/assets",
"crates/build",
"crates/cli",
"crates/client",
"crates/core",
"crates/extension",
"crates/js-runtime",
"crates/qs",
"crates/schema",
"crates/sqlite",
]
# https://doc.rust-lang.org/cargo/reference/profiles.html
@ -66,16 +66,16 @@ rust-embed = { version = "8.4.0", default-features = false, features = ["mime-gu
tokio = { version = "^1.38.0", features = ["macros", "rt-multi-thread", "fs", "signal", "time", "sync"] }
tracing = { version = "0.1.40", default-features = false }
tracing-subscriber = { version = "0.3.18", default-features = false, features = ["smallvec", "std", "fmt", "json"] }
trailbase-apalis = { path = "trailbase-apalis", version = "0.1.0" }
trailbase-assets = { path = "trailbase-assets", version = "0.2.0" }
trailbase-build = { path = "trailbase-build", version = "0.1.1" }
trailbase-client = { path = "client/rust", version = "0.5.0" }
trailbase-sqlean = { path = "vendor/sqlean", version = "0.0.3" }
trailbase-extension = { path = "trailbase-extension", version = "0.3.0" }
trailbase-js = { path = "trailbase-js", version = "0.2.0" }
trailbase-qs = { path = "trailbase-qs", version = "0.1.0" }
trailbase-refinery = { path = "trailbase-refinery", version = "0.1.0" }
trailbase-schema = { path = "trailbase-schema", version = "0.1.0" }
trailbase-sqlite = { path = "trailbase-sqlite", version = "0.3.0" }
trailbase = { path = "trailbase-core", version = "0.2.0" }
trailbase-apalis = { path = "crates/apalis", version = "0.1.0" }
trailbase-assets = { path = "crates/assets", version = "0.2.0" }
trailbase-build = { path = "crates/build", version = "0.1.1" }
trailbase-client = { path = "crates/client", version = "0.5.0" }
trailbase-sqlean = { path = "crates/sqlean", version = "0.0.3" }
trailbase-extension = { path = "crates/extension", version = "0.3.0" }
trailbase-js = { path = "crates/js-runtime", version = "0.2.0" }
trailbase-qs = { path = "crates/qs", version = "0.1.0" }
trailbase-refinery = { path = "crates/refinery", version = "0.1.0" }
trailbase-schema = { path = "crates/schema", version = "0.1.0" }
trailbase-sqlite = { path = "crates/sqlite", version = "0.3.0" }
trailbase = { path = "crates/core", version = "0.2.0" }
uuid = { version = "1", default-features = false, features = ["std", "v4", "v7", "serde"] }

View file

@ -28,8 +28,8 @@ RUN cargo chef cook --release --recipe-path recipe.json
COPY . .
# First install all JS deps. This is to avoid collisions due to parallel
# installs later-on while building `trailbase-assets` (auth, admin, client) and
# `trailbase-js` (runtime).
# installs later-on while building `crates/assets` (auth, admin, client) and
# `crates/js-runtime` (runtime).
RUN pnpm -r install --frozen-lockfile
ARG TARGETPLATFORM

View file

@ -30,7 +30,7 @@ openapi:
cargo run -- openapi print > docs/openapi/schema.json
cloc:
cloc --not-match-d=".*(/target|/dist|/node_modules|/vendor|.astro|.build|.venv|/traildepot|/flutter|/assets|lock|_benchmark|/bin|/obj).*" .
cloc --not-match-d=".*(/target|/dist|/node_modules|/vendor|.astro|.build|.venv|/traildepot|/flutter|lock|_benchmark|/bin|/obj).*" .
publish_crates:
cargo +nightly -Z package-workspace publish --no-verify \

1
client/rust Symbolic link
View file

@ -0,0 +1 @@
../crates/client

View file

@ -1 +1 @@
../trailbase-assets/js/client/
../crates/assets/js/client

View file

@ -34,7 +34,7 @@ $ pnpm run proto
## Rust-TypeScript codegen
The TypeScript bindings for the admin APIs are checked into the repository
under `/trailbase-assets/js/bindings`.
under `/crates/assets/js/bindings`.
They're generated via `ts-rs` and written every time the Rust tests execute,
i.e. `cargo test`. They're checked in to avoid having Rust depend on
TypesScript and TypeScript depend on Rust tests.

View file

@ -8,7 +8,7 @@
"build": "vite build",
"serve": "vite preview",
"format": "prettier -w .",
"proto": "protoc --plugin=protoc-gen-ts=${PWD}/node_modules/ts-proto/protoc-gen-ts_proto ../../../trailbase-core/proto/*.proto -I../../../trailbase-core//proto -I/usr/include --ts_out=./proto/ --ts_opt=esModuleInterop=true,initializeFieldsAsUndefined=false",
"proto": "protoc --plugin=protoc-gen-ts=${PWD}/node_modules/ts-proto/protoc-gen-ts_proto ../../../core/proto/*.proto -I../../../core//proto -I/usr/include --ts_out=./proto/ --ts_opt=esModuleInterop=true,initializeFieldsAsUndefined=false",
"check": "tsc --noEmit --skipLibCheck && eslint && vitest run",
"test": "vitest run"
},

View file

@ -0,0 +1 @@
../../../../../../assets/favicon.svg

View file

@ -0,0 +1 @@
../../../../../../assets/logo_104.webp

Some files were not shown because too many files have changed in this diff Show more