Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[target.aarch64-unknown-linux-gnu]
rustflags = ["-C", "link-arg=-fuse-ld=lld"]
3 changes: 3 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ jobs:
with:
targets: ${{ matrix.target }}
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2
- name: Install LLD
if: matrix.target == 'aarch64-unknown-linux-gnu'
run: sudo apt-get update && sudo apt-get install -y lld
- name: Set version from tag
shell: bash
run: |
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
filters: |
rust:
- ".github/workflows/tests.yaml"
- ".cargo/**"
- "Cargo.lock"
- "Cargo.toml"
- "npm/**"
Expand Down
7 changes: 5 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,6 @@ The API base URL follows the same pattern: `--api-base-url` flag > `APITALLY_API

## Common Commands

Building requires CMake, because DuckDB is compiled from source with the ICU extension.

```bash
cargo build # Build (debug)
cargo build --release # Build (release, optimized)
Expand All @@ -79,6 +77,11 @@ cargo clippy # Lint
cargo fmt # Format code
```

## Building

- CMake is required to compile DuckDB from source with the ICU extension.
- Linux ARM64 builds also require LLD. `.cargo/config.toml` selects it to resolve references between DuckDB's static extension archives.

## Distribution

The CLI is published to npm as `@apitally/cli`. The npm package contains no Rust code — its `postinstall` script (`npm/install.js`) downloads the pre-built binary for the user's platform from the GitHub release. `npm/cli.js` is a thin Node wrapper that spawns the native binary.
Expand Down
Loading