tauri-apps/tauri
By the numbers
A quantitative snapshot of the tauri-apps/tauri repository.
Data collected on 2026-04-30 from the
devbranch (HEAD1ca61fd74759).
Size
Lines of source code by language (excluding .git, target, node_modules, lockfiles):
| Language | Lines of code |
|---|---|
Rust (.rs) |
97,112 |
TypeScript (.ts) |
8,335 |
Kotlin (.kt) |
2,467 |
JavaScript (.js) |
2,316 |
Swift (.swift) |
945 |
xychart-beta horizontal
title "Lines of code by language"
x-axis ["Rust", "TypeScript", "Kotlin", "JavaScript", "Swift"]
y-axis "Lines"
bar [97112, 8335, 2467, 2316, 945]The Rust monorepo dominates. Kotlin and Swift account for the Android plugin glue (crates/tauri/mobile/) and the iOS bridge respectively. The TypeScript total is split between packages/api (the public JS bindings) and crates/tauri-schema-worker (a Cloudflare Workers helper that serves config schemas).
File counts
- 323
.rsfiles across 14 Cargo crates. - 28
.tsfiles inpackages/apiplus a handful in the schema worker. - 40
.ktand 37.swiftfiles for the mobile plugin templates and runtime glue.
Largest files
| File | Lines |
|---|---|
crates/tauri-runtime-wry/src/lib.rs |
5,383 |
crates/tauri-utils/src/config.rs |
4,738 |
crates/tauri/src/webview/webview_window.rs |
2,689 |
packages/api/src/window.ts |
2,672 |
crates/tauri/src/app.rs |
2,636 |
crates/tauri/src/webview/mod.rs |
2,380 |
crates/tauri-bundler/src/bundle/settings.rs |
1,319 |
crates/tauri/src/lib.rs |
1,254 |
crates/tauri/src/manager/mod.rs |
1,038 |
crates/tauri-cli/src/icon.rs |
986 |
These five-figure files are not necessarily candidates for a split — webview_window.rs and window.ts are mostly thin builder/getter methods, and tauri-utils/src/config.rs is generated-flavor code that mirrors the JSON schema.
Activity
- Total commits on
dev: 5,956 (since 2019-07-13). - Commits in the last 365 days: 1,744.
- Commits in the last 90 days are concentrated in the v2.10.x release cycle.
Hottest files in the last 90 days
| File | Touches |
|---|---|
Cargo.lock |
23 |
pnpm-lock.yaml |
17 |
packages/api/package.json |
13 |
crates/tauri/Cargo.toml |
12 |
crates/tauri-schema-generator/schemas/config.schema.json |
12 |
crates/tauri-cli/config.schema.json |
12 |
crates/tauri-utils/src/config.rs |
10 |
crates/tauri-runtime-wry/src/lib.rs |
7 |
crates/tauri-build/src/lib.rs |
7 |
crates/tauri/src/webview/webview_window.rs |
6 |
Lockfiles top the churn list (Renovate keeps them moving). The next tier — config.rs, config.schema.json, the schema generator — reflects ongoing config schema evolution. tauri-runtime-wry/src/lib.rs and webview_window.rs are the natural hotspots for window/webview behaviour.
Bot-attributed commits
Out of 5,956 total commits, 1,309 (~22%) were authored by bots — most via renovate[bot] (980), github-actions[bot] (238), and dependabot[bot] (91). Tauri leans heavily on Renovate for dependency churn. This is a lower bound on automation since inline tooling like Copilot leaves no signature in git history.
Complexity
- 14 Rust crates in the workspace plus 4 example/test crates and a Node.js Cargo wrapper (
packages/cli). - 2 published npm packages (
@tauri-apps/api,@tauri-apps/cli). - 12 example apps under
examples/covering the major features (multiwindow, isolation, splashscreen, drag, file-associations, resources, streaming, state, run-return, multiwebview). - 50
TODO/FIXME/HACKcomments across 37 Rust files — small for a project this size.
Test-to-code ratio (rough)
- Rust unit and integration tests sit alongside production code (
#[cfg(test)] mod tests) plus dedicated suites undercrates/tests/(acl,app-updater,restart). - The
crates/tauri/test/directory holds fixture projects exercised bycargo test -p tauri --all-features. - JS unit tests use
vitest(configured per package) and are run bypnpm test.
For deeper architectural reading, see Architecture.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.