diff --git a/astro.config.mjs b/astro.config.mjs index ac9bfcea2f..a45dc2f6e8 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -145,6 +145,10 @@ export default defineConfig({ label: 'JavaScript API', link: '2/reference/js', }, + { + label: 'Rust API', + link: '2/reference/rust', + }, { label: 'Rust API (via Docs.rs)', // TODO: Is there a way to link this to the latest pre-released version? diff --git a/packages/rust-api-generator/build.ts b/packages/rust-api-generator/build.ts new file mode 100644 index 0000000000..b516aee96c --- /dev/null +++ b/packages/rust-api-generator/build.ts @@ -0,0 +1,37 @@ +import { parseCrate, crateResolver } from './parser'; +import { generatePage } from './generator'; +import { join, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +// IMPORTANT: Keep these up to date and correct +const baseUrl = '/2/reference/rust'; +const rootDir = dirname(dirname(dirname(fileURLToPath(import.meta.url)))); +const docsPath = join(rootDir, 'src', 'content', 'docs', '2', 'reference', 'rust'); +const documentCrates = [ + 'tauri', + 'tauri-build', + 'tauri-codegen', + 'tauri-macros', + 'tauri-runtime', + 'tauri-runtime-wry', + 'tauri-utils', +]; + +async function main() { + console.log('Starting'); + for (const crate of documentCrates) { + console.log(`Documenting crate: ${crate}`); + const rustdoc = await crateResolver(crate); + if (!rustdoc) { + console.error(`Crate could not be resolved: ${crate}`); + continue; + } + const pages = await parseCrate(rustdoc, `${baseUrl}/${crate}/`, join(docsPath, crate)); + for (const page of pages) { + console.log(`Generating page: ${page.path}`); + await generatePage(page); + } + } +} + +main(); diff --git a/packages/rust-api-generator/generator.ts b/packages/rust-api-generator/generator.ts new file mode 100644 index 0000000000..76942d294e --- /dev/null +++ b/packages/rust-api-generator/generator.ts @@ -0,0 +1,107 @@ +import type { Page, PageContent, PageType } from './types'; +import { existsSync, readFileSync, mkdirSync, writeFileSync, readdirSync } from 'node:fs'; +import { join, dirname } from 'node:path'; + +/** + * Write a single page to disk + */ +export async function generatePage(page: Page) { + mkdirSync(dirname(page.path), { recursive: true }); + writeFileSync(page.path, page.content); +} + +/** + * Generates content for a page + * + * @param type + * @returns + */ +export async function generateContent(type: PageType, content: PageContent): Promise { + switch (type) { + case 'crate': + return await generateContentModule(content, true); + case 'module': + return await generateContentModule(content); + case 'struct': + return await generateContentStruct(content); + default: + throw Error('Unknown content type'); + } +} + +/** + * Generates a page header + * @date 8/17/2023 - 12:23:19 AM + * + * @param {string} title + * @returns {string} + */ +function header(title: string): string { + return `--- +title: '${title}' +editUrl: false +prev: false +next: false +--- +`; +} + +/** + * Empty string if docs is null, only use first line + * @date 8/17/2023 - 12:23:46 AM + * + * @param {(undefined | null | string)} docs + * @returns {string} + */ +function fixDocs(docs: undefined | null | string): string { + if (!docs) return ''; + return docs.split('\n')[0]; +} + +function members(content: PageContent): string { + const output: string[] = []; + const modules = content.members.filter((val) => 'module' in val.item.inner); + if (modules.length > 0) output.push('## Modules\n\n'); + for (const member of modules) { + output.push( + `- [${member.item.name}](${content.moduleUrl}${member.path.path + .slice(1) + .join('/')}): ${fixDocs(member.item.docs)}` + ); + } + const structs = content.members.filter((val) => 'struct' in val.item.inner); + if (structs.length > 0) output.push('## Structs\n\n'); + for (const member of structs) { + output.push( + `- [${member.item.name}](${content.moduleUrl}${member.item.name}): ${fixDocs( + member.item.docs + )}` + ); + } + return output.join('\n'); +} + +/** + * Generates content for either a crate or a module, they are virtually identical + * + * @param isCrate + * @returns + */ +export async function generateContentModule( + content: PageContent, + isCrate: boolean = false +): Promise { + return `${header((isCrate ? 'Crate' : 'Module') + ' ' + content.title)} + +${content.description} +${members(content)}`; +} + +/** + * Generates content for a struct + * + * @returns + */ +export async function generateContentStruct(content: PageContent): Promise { + return ''; +} diff --git a/packages/rust-api-generator/package.json b/packages/rust-api-generator/package.json new file mode 100644 index 0000000000..17f0eae3b1 --- /dev/null +++ b/packages/rust-api-generator/package.json @@ -0,0 +1,15 @@ +{ + "name": "rust-api-generator", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "build": "tsm ./build.ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "tsm": "^2.3.0" + } +} diff --git a/packages/rust-api-generator/parser.ts b/packages/rust-api-generator/parser.ts new file mode 100644 index 0000000000..f3f379a60c --- /dev/null +++ b/packages/rust-api-generator/parser.ts @@ -0,0 +1,107 @@ +import type { RustDoc, Page, PageMember, ID } from './types'; +import { PageMemberType, PageType } from './types/pages'; +import { existsSync, readFileSync, mkdirSync, writeFileSync, readdirSync } from 'node:fs'; +import { join, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { generateContent } from './generator'; + +async function parseModules( + rootPath: string, + baseUrl: string, + rustdoc: RustDoc, + isCrate: boolean = false +): Promise { + const pages: Page[] = []; + if (isCrate) { + const item = rustdoc.index[rustdoc.root]; + const path = rustdoc.paths[rustdoc.root]; + const members: PageMember[] = item.inner.module.items.map((id: ID) => { + const member: PageMember = { + type: PageMemberType.struct, + item: rustdoc.index[id], + path: rustdoc.paths[id], + }; + return member; + }); + pages.push({ + type: PageType.crate, + path: join(rootPath, path.path.slice(1).join('/'), 'index.md'), + content: await generateContent(PageType.crate, { + title: path.path.join('::'), + description: item.docs ?? '', + moduleUrl: baseUrl, + members: members, + }), + }); + } else { + for (const id in rustdoc.paths) { + const path = rustdoc.paths[id]; + if (path.kind !== 'module' || path.crate_id !== 0 || id === rustdoc.root) continue; + const item = rustdoc.index[id]; + const members: PageMember[] = item.inner.module.items.map((id: ID) => { + const member: PageMember = { + type: PageMemberType.struct, + item: rustdoc.index[id], + path: rustdoc.paths[id], + }; + return member; + }); + pages.push({ + type: PageType.module, + path: join(rootPath, path.path.slice(1).join('/'), 'index.md'), + content: await generateContent(PageType.module, { + title: path.path.join('::'), + description: item.docs ?? '', + moduleUrl: baseUrl, + members: members, + }), + }); + } + } + return pages; +} + +async function parseStructs(rootPath: string, baseUrl: string, rustdoc: RustDoc): Promise { + const pages: Page[] = []; + return pages; +} + +/** + * Parses a single JSON file + */ +export async function parseCrate( + rustdoc: RustDoc, + baseUrl: string, + rootPath: string +): Promise { + let pages: Page[] = []; + const crateItem = rustdoc.index[rustdoc.root]; + + for (const type in PageType) { + switch (type) { + case 'crate': + pages = pages.concat(await parseModules(rootPath, baseUrl, rustdoc, true)); + case 'module': + pages = pages.concat(await parseModules(rootPath, baseUrl, rustdoc)); + case 'struct': + pages = pages.concat(await parseStructs(rootPath, baseUrl, rustdoc)); + } + } + return pages; +} + +/** + * Resolves the path to a json file for external crates + * @param crate + */ +export async function crateResolver(crate: string): Promise { + const targetFolder = '../tauri/target'; + for (const file of readdirSync(targetFolder)) { + if (file !== crate + '.json') continue; + + const rustdoc: RustDoc = JSON.parse(readFileSync(join(targetFolder, file), 'utf-8')); + rustdoc.name = crate; + return rustdoc; + } + return null; +} diff --git a/packages/rust-api-generator/types/index.ts b/packages/rust-api-generator/types/index.ts new file mode 100644 index 0000000000..f1a3c97481 --- /dev/null +++ b/packages/rust-api-generator/types/index.ts @@ -0,0 +1,2 @@ +export * from './rustdoc'; +export * from './pages'; diff --git a/packages/rust-api-generator/types/pages.ts b/packages/rust-api-generator/types/pages.ts new file mode 100644 index 0000000000..a6fc6d85c0 --- /dev/null +++ b/packages/rust-api-generator/types/pages.ts @@ -0,0 +1,64 @@ +import type { Item, ItemSummary } from './rustdoc'; + +/** + * A `Page` to be rendered + */ +export interface Page { + /** + * The type of the page + */ + type: PageType; + /** + * Path to the page .md file + */ + path: string; + /** + * Contents of the page + */ + content: string; +} + +/** + * Page content used for templating + */ +export interface PageContent { + /** + * Page title + */ + title: string; + /** + * URL to the page + */ + moduleUrl: string; + /** + * Page description + */ + description: string; + /** + * Member items of this page + */ + members: PageMember[]; +} + +export interface PageMember { + type: PageMemberType; + item: Item; + path: ItemSummary; +} + +/** + * The type of the page + */ +export enum PageMemberType { + 'module' = 'module', + 'struct' = 'struct', +} + +/** + * The type of the page + */ +export enum PageType { + 'crate' = 'crate', + 'module' = 'module', + 'struct' = 'struct', +} diff --git a/packages/rust-api-generator/types/rustdoc/index.ts b/packages/rust-api-generator/types/rustdoc/index.ts new file mode 100644 index 0000000000..2034dbe749 --- /dev/null +++ b/packages/rust-api-generator/types/rustdoc/index.ts @@ -0,0 +1,204 @@ +/** + * RustDoc representation of a crates documentation + */ +export interface RustDoc { + /** + * Crate ID + */ + root: ID; + /** + * Name of the crate + */ + name: string; + /** + * Crate version number + * + * May be `crate_version` + */ + version: undefined | null | string; + /** + * Crate version number + * + * May be `version` + */ + crate_version: undefined | null | string; + /** + * Whether private items were included + */ + include_private: boolean; + /** + * Items in the crate + */ + index: { + [key: ID]: Item; + }; + /** + * Paths for items in the crate + */ + paths: { + [key: ID]: ItemSummary; + }; + /** + * External crates / dependencies + */ + external_crates: { + [key: number]: ExternalCrate; + }; + /** + * Format version of the generated docs + */ + format_version: number; +} + +/** + * The ID of an Item + * + * These are not the same between crates or even crate builds + */ +export type ID = string; + +/** + * Summary for an Item in paths + */ +export interface ItemSummary { + /** + * `ID` of the crate the `Item` belongs to, the root crate is always 0 + */ + crate_id: number; + /** + * Path to the `Item`, e.g. `["some","path","Item"]` + */ + path: string[]; + /** + * Which type of `Item` this is referring to + */ + kind: string; +} + +/** + * Resolves a crate ID to its name and optionally to a link to its website + */ +export interface ExternalCrate { + /** + * Name of the external crate/dependency + */ + name: string; + /** + * Optional link to the crates site + */ + html_root_url: undefined | null | string; +} + +/** + * An Item in the `index` + */ +export interface Item { + /** + * The ID of the item + */ + id: string; + /** + * The ID of the crate this belongs to + */ + crate_id: number; + /** + * The name of the `Item` + */ + name: string; + /** + * The `Span` of the `Item` + */ + span: undefined | null | Span; + /** + * The visibility of the `Item` + */ + visibility: Visibility; + /** + * The docstring of the `Item` + */ + docs: undefined | null | string; + /** + * A map of intra-doc link names to the IDs of the items they resolve to + */ + link: { + [key: string]: ID; + }; + /** + * Attributes on the item, e.g. `#[inline]` + */ + attrs: string[]; + /** + * Deprecation notice of the `Item` + */ + deprecation: undefined | null | Deprecation; + /** + * Tends to be undefined! Use the name of the `inner` property instead + * + * The type of the inner `Item` + */ + kind: undefined | string; + /** + * The actual item contents + */ + inner: any; +} + +/** + * Referenced code + */ +export interface Span { + /** + * File that contains the referenced code + */ + filename: string; + /** + * The beginning of the referenced code + * + * Row, Column + */ + begin: number[]; + /** + * The end of the referenced code + * + * Row, Column + */ + end: number[]; +} + +/** + * Notes on the `Item`s deprecation notice + */ +export interface Deprecation { + /** + * When was the `Item` deprecated + */ + since: undefined | null | string; + /** + * Deprecation reason + */ + note: undefined | null | string; +} + +/** + * Restricted visibility to an `Item` + */ +export interface RestrictedVisibility { + /** + * Parent ID + */ + parent: ID; + /** + * Path of the Item as a string, e.g. `::some::item::here` + */ + path: string; +} + +/** + * Visibility of the `Item` + * + * @property default + * @property public + * @property crate + * @property `RestrictedVisibility` + */ +export type Visibility = 'default' | 'public' | 'crate' | RestrictedVisibility; diff --git a/packages/tauri-json/.gitignore b/packages/tauri-json/.gitignore new file mode 100644 index 0000000000..9f970225ad --- /dev/null +++ b/packages/tauri-json/.gitignore @@ -0,0 +1 @@ +target/ \ No newline at end of file diff --git a/packages/tauri-json/Cargo.lock b/packages/tauri-json/Cargo.lock new file mode 100644 index 0000000000..3204210755 --- /dev/null +++ b/packages/tauri-json/Cargo.lock @@ -0,0 +1,253 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-manifest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4165e1fb52e9c7d9196d9c591af9d82dee1aa643d709e1ff51bc8e83c25c0a9" +dependencies = [ + "serde", + "toml", +] + +[[package]] +name = "cargo-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7daec1a2a2129eeba1644b220b4647ec537b0b5d4bfd6876fcc5a540056b592" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "proc-macro2" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rustdoc-json" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b464a9fa3496ec6b70b1e13f118ce43682783287882dd9cd2e556d09d2dac06" +dependencies = [ + "cargo-manifest", + "cargo_metadata", + "serde", + "thiserror", + "toml", +] + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "semver" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.183" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.183" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +dependencies = [ + "serde", +] + +[[package]] +name = "syn" +version = "2.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tauri-json" +version = "0.1.0" +dependencies = [ + "rustdoc-json", +] + +[[package]] +name = "thiserror" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "toml" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "unicode-ident" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" + +[[package]] +name = "winnow" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5504cc7644f4b593cbc05c4a55bf9bd4e94b867c3c0bd440934174d50482427d" +dependencies = [ + "memchr", +] diff --git a/packages/tauri-json/Cargo.toml b/packages/tauri-json/Cargo.toml new file mode 100644 index 0000000000..23d795b829 --- /dev/null +++ b/packages/tauri-json/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "tauri-json" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +rustdoc-json = "0.8" diff --git a/packages/tauri-json/src/main.rs b/packages/tauri-json/src/main.rs new file mode 100644 index 0000000000..70b9e0399c --- /dev/null +++ b/packages/tauri-json/src/main.rs @@ -0,0 +1,30 @@ +fn main() { + for dir in std::fs::read_dir("../tauri/core") + .unwrap() + .map(|res| res.unwrap().path()) + { + let folder_name = dir.file_name().unwrap(); + if folder_name == "tauri-config-schema" || folder_name == "tests" { + continue; + } + let mut target_dir = dir.clone(); + target_dir.push("Cargo.toml"); + let json_path = rustdoc_json::Builder::default() + .toolchain("nightly") + .manifest_path(target_dir) + .document_private_items(true) + .quiet(false) + .silent(false) + .all_features(true) + // .features(["dox"]) + .build() + .unwrap(); + let mut new_path = json_path.clone(); + let _ = new_path.pop(); + let _ = new_path.pop(); + new_path.push(dir.file_name().unwrap()); + new_path.set_extension("json"); + let _ = std::fs::rename(json_path, &new_path); + println!("Wrote rustdoc JSON to {:?}", new_path); + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f6a246daf7..b56e31d52d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -98,6 +98,12 @@ importers: specifier: ^3.1.0 version: 3.1.0(typedoc@0.25.0) + packages/rust-api-generator: + dependencies: + tsm: + specifier: ^2.3.0 + version: 2.3.0 + packages: /@ampproject/remapping@2.2.1: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index c53b05116b..8ad41505f1 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,5 @@ packages: - 'packages/i18n-tracker' - 'packages/js-api-generator' + - 'packages/rust-api-generator' - 'packages/tauri-typedoc-theme' diff --git a/src/content/docs/2/reference/.gitignore b/src/content/docs/2/reference/.gitignore index 2378f28b27..84af044e43 100644 --- a/src/content/docs/2/reference/.gitignore +++ b/src/content/docs/2/reference/.gitignore @@ -1,3 +1,8 @@ config.md js/* -!js/index.mdx \ No newline at end of file +!js/index.mdx +core/js/ +core/rust/* +!core/rust/*.md +plugin/**/ +config.md diff --git a/src/content/docs/2/reference/rust/index.md b/src/content/docs/2/reference/rust/index.md new file mode 100644 index 0000000000..b20fdb1ccf --- /dev/null +++ b/src/content/docs/2/reference/rust/index.md @@ -0,0 +1,16 @@ +--- +title: 'Rust API' +editUrl: false +prev: false +next: false +--- + +## Crates + +- **[tauri](tauri)**: Core crate and your entrypoint to Tauri +- **[tauri-build](tauri-build)**: Build crate, used in `build.rs` +- **[tauri-codegen](tauri-codegen)**: Codegen crate, internal +- **[tauri-macros](tauri-macros)**: Macros crate, exposed via `tauri` +- **[tauri-runtime](tauri-runtime)**: Runtime crate, internal +- **[tauri-runtime-wry](tauri-runtime-wry)**: Wry runtime crate, internal +- **[tauri-utils](tauri-utils)**: Utilities crate, internal diff --git a/src/content/docs/2/reference/rust/index.mdx b/src/content/docs/2/reference/rust/index.mdx deleted file mode 100644 index 2220e5d257..0000000000 --- a/src/content/docs/2/reference/rust/index.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -title: Rust ---- diff --git a/src/content/docs/2/reference/rust/tauri-build/allowlist/index.md b/src/content/docs/2/reference/rust/tauri-build/allowlist/index.md new file mode 100644 index 0000000000..43acb296f4 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-build/allowlist/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri_build::allowlist' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [Diff](/2/reference/rust/tauri-build/Diff): +- [AllowlistedDependency](/2/reference/rust/tauri-build/AllowlistedDependency): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-build/codegen/context/index.md b/src/content/docs/2/reference/rust/tauri-build/codegen/context/index.md new file mode 100644 index 0000000000..d1c68e4c76 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-build/codegen/context/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_build::codegen::context' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [CodegenContext](/2/reference/rust/tauri-build/CodegenContext): A builder for generating a Tauri application context during compile time. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-build/codegen/index.md b/src/content/docs/2/reference/rust/tauri-build/codegen/index.md new file mode 100644 index 0000000000..8f5cc450b9 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-build/codegen/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_build::codegen' +editUrl: false +prev: false +next: false +--- + + + +## Modules + + +- [context](/2/reference/rust/tauri-build/codegen/context): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-build/index.md b/src/content/docs/2/reference/rust/tauri-build/index.md new file mode 100644 index 0000000000..a36b8ec3bf --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-build/index.md @@ -0,0 +1,22 @@ +--- +title: 'Crate tauri_build' +editUrl: false +prev: false +next: false +--- + + + +## Modules + + +- [allowlist](/2/reference/rust/tauri-build/allowlist): +- [codegen](/2/reference/rust/tauri-build/codegen): +- [mobile](/2/reference/rust/tauri-build/mobile): Mobile build functions. +- [static_vcruntime](/2/reference/rust/tauri-build/static_vcruntime): +## Structs + + +- [WindowsAttributes](/2/reference/rust/tauri-build/WindowsAttributes): Attributes used on Windows. +- [Attributes](/2/reference/rust/tauri-build/Attributes): The attributes used on the build. +- [CargoMetadata](/2/reference/rust/tauri-build/CargoMetadata): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-build/mobile/index.md b/src/content/docs/2/reference/rust/tauri-build/mobile/index.md new file mode 100644 index 0000000000..0620acaf8e --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-build/mobile/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri_build::mobile' +editUrl: false +prev: false +next: false +--- + + +Mobile build functions. +## Structs + + +- [PluginMetadata](/2/reference/rust/tauri-build/PluginMetadata): +- [PluginBuilder](/2/reference/rust/tauri-build/PluginBuilder): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-build/static_vcruntime/index.md b/src/content/docs/2/reference/rust/tauri-build/static_vcruntime/index.md new file mode 100644 index 0000000000..a050fa23d6 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-build/static_vcruntime/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri_build::static_vcruntime' +editUrl: false +prev: false +next: false +--- + + + diff --git a/src/content/docs/2/reference/rust/tauri-codegen/context/index.md b/src/content/docs/2/reference/rust/tauri-codegen/context/index.md new file mode 100644 index 0000000000..bb893092c9 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-codegen/context/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_codegen::context' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [ContextData](/2/reference/rust/tauri-codegen/ContextData): Necessary data needed by [`context_codegen`] to generate code for a Tauri application context. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-codegen/embedded_assets/index.md b/src/content/docs/2/reference/rust/tauri-codegen/embedded_assets/index.md new file mode 100644 index 0000000000..00d0bfaef0 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-codegen/embedded_assets/index.md @@ -0,0 +1,17 @@ +--- +title: 'Module tauri_codegen::embedded_assets' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [EmbeddedAssets](/2/reference/rust/tauri-codegen/EmbeddedAssets): Represent a directory of assets that are compressed and embedded. +- [EmbeddedAssetsInput](/2/reference/rust/tauri-codegen/EmbeddedAssetsInput): +- [RawEmbeddedAssets](/2/reference/rust/tauri-codegen/RawEmbeddedAssets): Holds a list of (prefix, entry) +- [CspHashes](/2/reference/rust/tauri-codegen/CspHashes): Holds all hashes that we will apply on the CSP tag/header. +- [AssetOptions](/2/reference/rust/tauri-codegen/AssetOptions): Options used to embed assets. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-codegen/index.md b/src/content/docs/2/reference/rust/tauri-codegen/index.md new file mode 100644 index 0000000000..a191c300f2 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-codegen/index.md @@ -0,0 +1,14 @@ +--- +title: 'Crate tauri_codegen' +editUrl: false +prev: false +next: false +--- + + + +## Modules + + +- [context](/2/reference/rust/tauri-codegen/context): +- [embedded_assets](/2/reference/rust/tauri-codegen/embedded_assets): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-macros/command/handler/index.md b/src/content/docs/2/reference/rust/tauri-macros/command/handler/index.md new file mode 100644 index 0000000000..2e4c01d53e --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-macros/command/handler/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri_macros::command::handler' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [CommandDef](/2/reference/rust/tauri-macros/CommandDef): +- [Handler](/2/reference/rust/tauri-macros/Handler): The items parsed from [`generate_handle!`](crate::generate_handle). \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-macros/command/index.md b/src/content/docs/2/reference/rust/tauri-macros/command/index.md new file mode 100644 index 0000000000..774116207b --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-macros/command/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri_macros::command' +editUrl: false +prev: false +next: false +--- + + + +## Modules + + +- [handler](/2/reference/rust/tauri-macros/command/handler): +- [wrapper](/2/reference/rust/tauri-macros/command/wrapper): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-macros/command/wrapper/index.md b/src/content/docs/2/reference/rust/tauri-macros/command/wrapper/index.md new file mode 100644 index 0000000000..d23609dbab --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-macros/command/wrapper/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri_macros::command::wrapper' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [WrapperAttributes](/2/reference/rust/tauri-macros/WrapperAttributes): +- [Invoke](/2/reference/rust/tauri-macros/Invoke): The bindings we attach to `tauri::Invoke`. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-macros/context/index.md b/src/content/docs/2/reference/rust/tauri-macros/context/index.md new file mode 100644 index 0000000000..b7aab2a0e9 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-macros/context/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_macros::context' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [ContextItems](/2/reference/rust/tauri-macros/ContextItems): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-macros/index.md b/src/content/docs/2/reference/rust/tauri-macros/index.md new file mode 100644 index 0000000000..2450f792b1 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-macros/index.md @@ -0,0 +1,16 @@ +--- +title: 'Crate tauri_macros' +editUrl: false +prev: false +next: false +--- + + + +## Modules + + +- [command](/2/reference/rust/tauri-macros/command): +- [mobile](/2/reference/rust/tauri-macros/mobile): +- [runtime](/2/reference/rust/tauri-macros/runtime): +- [context](/2/reference/rust/tauri-macros/context): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-macros/mobile/index.md b/src/content/docs/2/reference/rust/tauri-macros/mobile/index.md new file mode 100644 index 0000000000..aa2bcd8a8c --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-macros/mobile/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri_macros::mobile' +editUrl: false +prev: false +next: false +--- + + + diff --git a/src/content/docs/2/reference/rust/tauri-macros/runtime/index.md b/src/content/docs/2/reference/rust/tauri-macros/runtime/index.md new file mode 100644 index 0000000000..217ccffcb5 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-macros/runtime/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_macros::runtime' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [Attributes](/2/reference/rust/tauri-macros/Attributes): The default runtime type to enable when the provided feature is enabled. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime-wry/index.md b/src/content/docs/2/reference/rust/tauri-runtime-wry/index.md new file mode 100644 index 0000000000..256804f960 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime-wry/index.md @@ -0,0 +1,47 @@ +--- +title: 'Crate tauri_runtime_wry' +editUrl: false +prev: false +next: false +--- + + +The [`wry`] Tauri [`Runtime`]. +## Modules + + +- [webview](/2/reference/rust/tauri-runtime-wry/webview): +- [system_tray](/2/reference/rust/tauri-runtime-wry/system_tray): +## Structs + + +- [WebviewIdStore](/2/reference/rust/tauri-runtime-wry/WebviewIdStore): +- [Context](/2/reference/rust/tauri-runtime-wry/Context): +- [DispatcherMainThreadContext](/2/reference/rust/tauri-runtime-wry/DispatcherMainThreadContext): +- [HttpRequestWrapper](/2/reference/rust/tauri-runtime-wry/HttpRequestWrapper): +- [HttpResponseWrapper](/2/reference/rust/tauri-runtime-wry/HttpResponseWrapper): +- [MenuItemAttributesWrapper](/2/reference/rust/tauri-runtime-wry/MenuItemAttributesWrapper): +- [AboutMetadataWrapper](/2/reference/rust/tauri-runtime-wry/AboutMetadataWrapper): +- [MenuItemWrapper](/2/reference/rust/tauri-runtime-wry/MenuItemWrapper): +- [DeviceEventFilterWrapper](/2/reference/rust/tauri-runtime-wry/DeviceEventFilterWrapper): +- [WryIcon](/2/reference/rust/tauri-runtime-wry/WryIcon): Wrapper around a [`wry::application::window::Icon`] that can be created from an [`Icon`]. +- [WindowEventWrapper](/2/reference/rust/tauri-runtime-wry/WindowEventWrapper): +- [MonitorHandleWrapper](/2/reference/rust/tauri-runtime-wry/MonitorHandleWrapper): +- [PhysicalPositionWrapper](/2/reference/rust/tauri-runtime-wry/PhysicalPositionWrapper): +- [LogicalPositionWrapper](/2/reference/rust/tauri-runtime-wry/LogicalPositionWrapper): +- [PhysicalSizeWrapper](/2/reference/rust/tauri-runtime-wry/PhysicalSizeWrapper): +- [LogicalSizeWrapper](/2/reference/rust/tauri-runtime-wry/LogicalSizeWrapper): +- [SizeWrapper](/2/reference/rust/tauri-runtime-wry/SizeWrapper): +- [PositionWrapper](/2/reference/rust/tauri-runtime-wry/PositionWrapper): +- [UserAttentionTypeWrapper](/2/reference/rust/tauri-runtime-wry/UserAttentionTypeWrapper): +- [CursorIconWrapper](/2/reference/rust/tauri-runtime-wry/CursorIconWrapper): +- [WindowBuilderWrapper](/2/reference/rust/tauri-runtime-wry/WindowBuilderWrapper): +- [FileDropEventWrapper](/2/reference/rust/tauri-runtime-wry/FileDropEventWrapper): +- [RawWindowHandle](/2/reference/rust/tauri-runtime-wry/RawWindowHandle): +- [WryDispatcher](/2/reference/rust/tauri-runtime-wry/WryDispatcher): The Tauri [`Dispatch`] for [`Wry`]. +- [WindowWrapper](/2/reference/rust/tauri-runtime-wry/WindowWrapper): +- [EventProxy](/2/reference/rust/tauri-runtime-wry/EventProxy): +- [Wry](/2/reference/rust/tauri-runtime-wry/Wry): A Tauri [`Runtime`] wrapper around wry. +- [WryHandle](/2/reference/rust/tauri-runtime-wry/WryHandle): A handle to the Wry runtime. +- [EventLoopIterationContext](/2/reference/rust/tauri-runtime-wry/EventLoopIterationContext): +- [UserMessageContext](/2/reference/rust/tauri-runtime-wry/UserMessageContext): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime-wry/system_tray/index.md b/src/content/docs/2/reference/rust/tauri-runtime-wry/system_tray/index.md new file mode 100644 index 0000000000..26f630a4ac --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime-wry/system_tray/index.md @@ -0,0 +1,16 @@ +--- +title: 'Module tauri_runtime_wry::system_tray' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [TrayContext](/2/reference/rust/tauri-runtime-wry/TrayContext): +- [SystemTrayManager](/2/reference/rust/tauri-runtime-wry/SystemTrayManager): +- [TrayIcon](/2/reference/rust/tauri-runtime-wry/TrayIcon): Wrapper around a [`wry::application::system_tray::Icon`] that can be created from an [`WindowIcon`]. +- [SystemTrayHandle](/2/reference/rust/tauri-runtime-wry/SystemTrayHandle): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime-wry/webview/imp/index.md b/src/content/docs/2/reference/rust/tauri-runtime-wry/webview/imp/index.md new file mode 100644 index 0000000000..1b6ba19c0c --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime-wry/webview/imp/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_runtime_wry::webview::imp' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [Webview](/2/reference/rust/tauri-runtime-wry/Webview): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime-wry/webview/index.md b/src/content/docs/2/reference/rust/tauri-runtime-wry/webview/index.md new file mode 100644 index 0000000000..05d77c8945 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime-wry/webview/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_runtime_wry::webview' +editUrl: false +prev: false +next: false +--- + + + +## Modules + + +- [imp](/2/reference/rust/tauri-runtime-wry/webview/imp): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime/http/index.md b/src/content/docs/2/reference/rust/tauri-runtime/http/index.md new file mode 100644 index 0000000000..2fc690c5c2 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime/http/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri_runtime::http' +editUrl: false +prev: false +next: false +--- + + + +## Modules + + +- [request](/2/reference/rust/tauri-runtime/http/request): +- [response](/2/reference/rust/tauri-runtime/http/response): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime/http/request/index.md b/src/content/docs/2/reference/rust/tauri-runtime/http/request/index.md new file mode 100644 index 0000000000..b81e7e2699 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime/http/request/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri_runtime::http::request' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [Request](/2/reference/rust/tauri-runtime/Request): Represents an HTTP request from the WebView. +- [RequestParts](/2/reference/rust/tauri-runtime/RequestParts): Component parts of an HTTP `Request` \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime/http/response/index.md b/src/content/docs/2/reference/rust/tauri-runtime/http/response/index.md new file mode 100644 index 0000000000..31f07c9874 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime/http/response/index.md @@ -0,0 +1,15 @@ +--- +title: 'Module tauri_runtime::http::response' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [Response](/2/reference/rust/tauri-runtime/Response): Represents an HTTP response +- [ResponseParts](/2/reference/rust/tauri-runtime/ResponseParts): Component parts of an HTTP `Response` +- [Builder](/2/reference/rust/tauri-runtime/Builder): An HTTP response builder \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime/index.md b/src/content/docs/2/reference/rust/tauri-runtime/index.md new file mode 100644 index 0000000000..1510e98254 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime/index.md @@ -0,0 +1,23 @@ +--- +title: 'Crate tauri_runtime' +editUrl: false +prev: false +next: false +--- + + +Internal runtime between Tauri and the underlying webview runtime. +## Modules + + +- [http](/2/reference/rust/tauri-runtime/http): +- [menu](/2/reference/rust/tauri-runtime/menu): Create window and system tray menus. +- [monitor](/2/reference/rust/tauri-runtime/monitor): Types useful for interacting with a user's monitors. +- [webview](/2/reference/rust/tauri-runtime/webview): Items specific to the [`Runtime`](crate::Runtime)'s webview. +- [window](/2/reference/rust/tauri-runtime/window): A layer between raw [`Runtime`] webview windows and Tauri. +## Structs + + +- [SystemTray](/2/reference/rust/tauri-runtime/SystemTray): +- [Icon](/2/reference/rust/tauri-runtime/Icon): Window icon. +- [RunIteration](/2/reference/rust/tauri-runtime/RunIteration): Metadata for a runtime event loop iteration on `run_iteration`. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime/menu/index.md b/src/content/docs/2/reference/rust/tauri-runtime/menu/index.md new file mode 100644 index 0000000000..8befc3b518 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime/menu/index.md @@ -0,0 +1,18 @@ +--- +title: 'Module tauri_runtime::menu' +editUrl: false +prev: false +next: false +--- + + +Create window and system tray menus. +## Structs + + +- [Menu](/2/reference/rust/tauri-runtime/Menu): A window menu. +- [Submenu](/2/reference/rust/tauri-runtime/Submenu): +- [CustomMenuItem](/2/reference/rust/tauri-runtime/CustomMenuItem): A custom menu item. +- [SystemTrayMenu](/2/reference/rust/tauri-runtime/SystemTrayMenu): A system tray menu. +- [SystemTraySubmenu](/2/reference/rust/tauri-runtime/SystemTraySubmenu): +- [AboutMetadata](/2/reference/rust/tauri-runtime/AboutMetadata): Application metadata for the [`MenuItem::About`] action. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime/monitor/index.md b/src/content/docs/2/reference/rust/tauri-runtime/monitor/index.md new file mode 100644 index 0000000000..c63f33a26b --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime/monitor/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_runtime::monitor' +editUrl: false +prev: false +next: false +--- + + +Types useful for interacting with a user's monitors. +## Structs + + +- [Monitor](/2/reference/rust/tauri-runtime/Monitor): Monitor descriptor. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime/webview/index.md b/src/content/docs/2/reference/rust/tauri-runtime/webview/index.md new file mode 100644 index 0000000000..52ecce5680 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime/webview/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_runtime::webview' +editUrl: false +prev: false +next: false +--- + + +Items specific to the [`Runtime`](crate::Runtime)'s webview. +## Structs + + +- [WebviewAttributes](/2/reference/rust/tauri-runtime/WebviewAttributes): The attributes used to create an webview. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime/window/dpi/index.md b/src/content/docs/2/reference/rust/tauri-runtime/window/dpi/index.md new file mode 100644 index 0000000000..fc542767ee --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime/window/dpi/index.md @@ -0,0 +1,16 @@ +--- +title: 'Module tauri_runtime::window::dpi' +editUrl: false +prev: false +next: false +--- + + +UI scaling utilities. +## Structs + + +- [LogicalPosition](/2/reference/rust/tauri-runtime/LogicalPosition): A position represented in logical pixels. +- [PhysicalPosition](/2/reference/rust/tauri-runtime/PhysicalPosition): A position represented in physical pixels. +- [LogicalSize](/2/reference/rust/tauri-runtime/LogicalSize): A size represented in logical pixels. +- [PhysicalSize](/2/reference/rust/tauri-runtime/PhysicalSize): A size represented in physical pixels. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-runtime/window/index.md b/src/content/docs/2/reference/rust/tauri-runtime/window/index.md new file mode 100644 index 0000000000..43c57febfb --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-runtime/window/index.md @@ -0,0 +1,19 @@ +--- +title: 'Module tauri_runtime::window' +editUrl: false +prev: false +next: false +--- + + +A layer between raw [`Runtime`] webview windows and Tauri. +## Modules + + +- [dpi](/2/reference/rust/tauri-runtime/window/dpi): UI scaling utilities. +## Structs + + +- [MenuEvent](/2/reference/rust/tauri-runtime/MenuEvent): A menu event. +- [PendingWindow](/2/reference/rust/tauri-runtime/PendingWindow): A webview window that has yet to be built. +- [DetachedWindow](/2/reference/rust/tauri-runtime/DetachedWindow): A webview window that is not yet managed by Tauri. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-utils/assets/index.md b/src/content/docs/2/reference/rust/tauri-utils/assets/index.md new file mode 100644 index 0000000000..f652494dba --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/assets/index.md @@ -0,0 +1,15 @@ +--- +title: 'Module tauri_utils::assets' +editUrl: false +prev: false +next: false +--- + + +The Assets module allows you to read files that have been bundled by tauri +during both compile time and runtime. +## Structs + + +- [AssetKey](/2/reference/rust/tauri-utils/AssetKey): Represent an asset file path in a normalized way. +- [EmbeddedAssets](/2/reference/rust/tauri-utils/EmbeddedAssets): [`Assets`] implementation that only contains compile-time compressed and embedded assets. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-utils/config/build/index.md b/src/content/docs/2/reference/rust/tauri-utils/config/build/index.md new file mode 100644 index 0000000000..f3d2112787 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/config/build/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_utils::config::build' +editUrl: false +prev: false +next: false +--- + + +Implement `ToTokens` for all config structs, allowing a literal `Config` to be built. + +This allows for a build script to output the values in a `Config` to a `TokenStream`, which can +then be consumed by another crate. Useful for passing a config to both the build script and the +application using tauri while only parsing it once (in the build script). diff --git a/src/content/docs/2/reference/rust/tauri-utils/config/index.md b/src/content/docs/2/reference/rust/tauri-utils/config/index.md new file mode 100644 index 0000000000..41733338d1 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/config/index.md @@ -0,0 +1,48 @@ +--- +title: 'Module tauri_utils::config' +editUrl: false +prev: false +next: false +--- + + +The Tauri configuration used at runtime. + +It is pulled from a `tauri.conf.json` file and the [`Config`] struct is generated at compile time. + +# Stability +This is a core functionality that is not considered part of the stable API. +If you use it, note that it may include breaking changes in the future. +## Modules + + +- [parse](/2/reference/rust/tauri-utils/config/parse): Items to help with parsing content into a [`Config`]. +- [build](/2/reference/rust/tauri-utils/config/build): Implement `ToTokens` for all config structs, allowing a literal `Config` to be built. +## Structs + + +- [AppImageConfig](/2/reference/rust/tauri-utils/AppImageConfig): Configuration for AppImage bundles. +- [DebConfig](/2/reference/rust/tauri-utils/DebConfig): Configuration for Debian (.deb) bundles. +- [MacConfig](/2/reference/rust/tauri-utils/MacConfig): Configuration for the macOS bundles. +- [WixLanguageConfig](/2/reference/rust/tauri-utils/WixLanguageConfig): Configuration for a target language for the WiX build. +- [WixConfig](/2/reference/rust/tauri-utils/WixConfig): Configuration for the MSI bundle using WiX. +- [NsisConfig](/2/reference/rust/tauri-utils/NsisConfig): Configuration for the Installer bundle using NSIS. +- [WindowsConfig](/2/reference/rust/tauri-utils/WindowsConfig): Windows bundler configuration. +- [UpdaterConfig](/2/reference/rust/tauri-utils/UpdaterConfig): The Updater configuration object. +- [BundleConfig](/2/reference/rust/tauri-utils/BundleConfig): Configuration for tauri-bundler. +- [Color](/2/reference/rust/tauri-utils/Color): a tuple struct of RGBA colors. Each value has minimum of 0 and maximum of 255. +- [WindowEffectsConfig](/2/reference/rust/tauri-utils/WindowEffectsConfig): The window effects configuration object +- [WindowConfig](/2/reference/rust/tauri-utils/WindowConfig): The window configuration object. +- [RemoteDomainAccessScope](/2/reference/rust/tauri-utils/RemoteDomainAccessScope): External command access definition. +- [AssetProtocolConfig](/2/reference/rust/tauri-utils/AssetProtocolConfig): Config for the asset custom protocol. +- [SecurityConfig](/2/reference/rust/tauri-utils/SecurityConfig): Security configuration. +- [TauriConfig](/2/reference/rust/tauri-utils/TauriConfig): The Tauri configuration object. +- [UpdaterWindowsConfig](/2/reference/rust/tauri-utils/UpdaterWindowsConfig): The updater configuration for Windows. +- [SystemTrayConfig](/2/reference/rust/tauri-utils/SystemTrayConfig): Configuration for application system tray icon. +- [IosConfig](/2/reference/rust/tauri-utils/IosConfig): General configuration for the iOS target. +- [AndroidConfig](/2/reference/rust/tauri-utils/AndroidConfig): General configuration for the iOS target. +- [BuildConfig](/2/reference/rust/tauri-utils/BuildConfig): The Build configuration object. +- [PackageVersion](/2/reference/rust/tauri-utils/PackageVersion): +- [PackageConfig](/2/reference/rust/tauri-utils/PackageConfig): The package configuration. +- [Config](/2/reference/rust/tauri-utils/Config): The Tauri configuration object. +- [PluginConfig](/2/reference/rust/tauri-utils/PluginConfig): The plugin configs holds a HashMap mapping a plugin name to its configuration object. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-utils/config/parse/index.md b/src/content/docs/2/reference/rust/tauri-utils/config/parse/index.md new file mode 100644 index 0000000000..512a4db981 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/config/parse/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri_utils::config::parse' +editUrl: false +prev: false +next: false +--- + + +Items to help with parsing content into a [`Config`]. diff --git a/src/content/docs/2/reference/rust/tauri-utils/html/index.md b/src/content/docs/2/reference/rust/tauri-utils/html/index.md new file mode 100644 index 0000000000..fcfc2407d1 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/html/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri_utils::html' +editUrl: false +prev: false +next: false +--- + + +The module to process HTML in Tauri. diff --git a/src/content/docs/2/reference/rust/tauri-utils/index.md b/src/content/docs/2/reference/rust/tauri-utils/index.md new file mode 100644 index 0000000000..228b383825 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/index.md @@ -0,0 +1,26 @@ +--- +title: 'Crate tauri_utils' +editUrl: false +prev: false +next: false +--- + + +Tauri utility helpers +## Modules + + +- [assets](/2/reference/rust/tauri-utils/assets): The Assets module allows you to read files that have been bundled by tauri +- [config](/2/reference/rust/tauri-utils/config): The Tauri configuration used at runtime. +- [html](/2/reference/rust/tauri-utils/html): The module to process HTML in Tauri. +- [io](/2/reference/rust/tauri-utils/io): IO helpers. +- [mime_type](/2/reference/rust/tauri-utils/mime_type): Determine a mime type from a URI or file contents. +- [platform](/2/reference/rust/tauri-utils/platform): Platform helper functions. +- [resources](/2/reference/rust/tauri-utils/resources): Prepare application resources and sidecars. +- [pattern](/2/reference/rust/tauri-utils/pattern): Application pattern. +- [window_effects](/2/reference/rust/tauri-utils/window_effects): +## Structs + + +- [PackageInfo](/2/reference/rust/tauri-utils/PackageInfo): `tauri::App` package information. +- [Env](/2/reference/rust/tauri-utils/Env): Information about environment variables. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-utils/io/index.md b/src/content/docs/2/reference/rust/tauri-utils/io/index.md new file mode 100644 index 0000000000..c3d5715f6b --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/io/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri_utils::io' +editUrl: false +prev: false +next: false +--- + + +IO helpers. diff --git a/src/content/docs/2/reference/rust/tauri-utils/mime_type/index.md b/src/content/docs/2/reference/rust/tauri-utils/mime_type/index.md new file mode 100644 index 0000000000..d1e3a741a4 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/mime_type/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri_utils::mime_type' +editUrl: false +prev: false +next: false +--- + + +Determine a mime type from a URI or file contents. diff --git a/src/content/docs/2/reference/rust/tauri-utils/pattern/index.md b/src/content/docs/2/reference/rust/tauri-utils/pattern/index.md new file mode 100644 index 0000000000..41dd469f52 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/pattern/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_utils::pattern' +editUrl: false +prev: false +next: false +--- + + +Application pattern. +## Modules + + +- [isolation](/2/reference/rust/tauri-utils/pattern/isolation): Handling the Tauri "Isolation" Pattern. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-utils/pattern/isolation/index.md b/src/content/docs/2/reference/rust/tauri-utils/pattern/isolation/index.md new file mode 100644 index 0000000000..db8cf702b6 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/pattern/isolation/index.md @@ -0,0 +1,17 @@ +--- +title: 'Module tauri_utils::pattern::isolation' +editUrl: false +prev: false +next: false +--- + + +Handling the Tauri "Isolation" Pattern. +## Structs + + +- [AesGcmPair](/2/reference/rust/tauri-utils/AesGcmPair): A formatted AES-GCM cipher instance along with the key used to initialize it. +- [Keys](/2/reference/rust/tauri-utils/Keys): All cryptographic keys required for Isolation encryption +- [RawIsolationPayload](/2/reference/rust/tauri-utils/RawIsolationPayload): Raw representation of +- [IsolationJavascriptCodegen](/2/reference/rust/tauri-utils/IsolationJavascriptCodegen): The Isolation JavaScript template meant to be injected during codegen. +- [IsolationJavascriptRuntime](/2/reference/rust/tauri-utils/IsolationJavascriptRuntime): The Isolation JavaScript template meant to be injected during runtime. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-utils/platform/index.md b/src/content/docs/2/reference/rust/tauri-utils/platform/index.md new file mode 100644 index 0000000000..b274c7886e --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/platform/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri_utils::platform' +editUrl: false +prev: false +next: false +--- + + +Platform helper functions. +## Modules + + +- [starting_binary](/2/reference/rust/tauri-utils/platform/starting_binary): +- [windows_platform](/2/reference/rust/tauri-utils/platform/windows_platform): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-utils/platform/starting_binary/index.md b/src/content/docs/2/reference/rust/tauri-utils/platform/starting_binary/index.md new file mode 100644 index 0000000000..94a7906fbd --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/platform/starting_binary/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_utils::platform::starting_binary' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [StartingBinary](/2/reference/rust/tauri-utils/StartingBinary): Represents a binary path that was cached when the program was loaded. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-utils/platform/windows_platform/index.md b/src/content/docs/2/reference/rust/tauri-utils/platform/windows_platform/index.md new file mode 100644 index 0000000000..7cd8ca7a83 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/platform/windows_platform/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri_utils::platform::windows_platform' +editUrl: false +prev: false +next: false +--- + + + diff --git a/src/content/docs/2/reference/rust/tauri-utils/resources/index.md b/src/content/docs/2/reference/rust/tauri-utils/resources/index.md new file mode 100644 index 0000000000..ba3d287495 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/resources/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri_utils::resources' +editUrl: false +prev: false +next: false +--- + + +Prepare application resources and sidecars. +## Structs + + +- [ResourcePaths](/2/reference/rust/tauri-utils/ResourcePaths): A helper to iterate through resources. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri-utils/window_effects/index.md b/src/content/docs/2/reference/rust/tauri-utils/window_effects/index.md new file mode 100644 index 0000000000..7003745735 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri-utils/window_effects/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri_utils::window_effects' +editUrl: false +prev: false +next: false +--- + + + diff --git a/src/content/docs/2/reference/rust/tauri/api/dir/index.md b/src/content/docs/2/reference/rust/tauri/api/dir/index.md new file mode 100644 index 0000000000..37fbf91e72 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/api/dir/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri::api::dir' +editUrl: false +prev: false +next: false +--- + + +Types and functions related to file system directory management. +## Structs + + +- [DiskEntry](/2/reference/rust/tauri/DiskEntry): A disk entry which is either a file or a directory. +- [ReadDirOptions](/2/reference/rust/tauri/ReadDirOptions): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/api/error/index.md b/src/content/docs/2/reference/rust/tauri/api/error/index.md new file mode 100644 index 0000000000..d5341d77b7 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/api/error/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri::api::error' +editUrl: false +prev: false +next: false +--- + + + diff --git a/src/content/docs/2/reference/rust/tauri/api/file/index.md b/src/content/docs/2/reference/rust/tauri/api/file/index.md new file mode 100644 index 0000000000..f13ac19226 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/api/file/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri::api::file' +editUrl: false +prev: false +next: false +--- + + +Types and functions related to file operations. diff --git a/src/content/docs/2/reference/rust/tauri/api/index.md b/src/content/docs/2/reference/rust/tauri/api/index.md new file mode 100644 index 0000000000..d926f1d3d4 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/api/index.md @@ -0,0 +1,17 @@ +--- +title: 'Module tauri::api' +editUrl: false +prev: false +next: false +--- + + +The Tauri API interface. +## Modules + + +- [dir](/2/reference/rust/tauri/api/dir): Types and functions related to file system directory management. +- [file](/2/reference/rust/tauri/api/file): Types and functions related to file operations. +- [ipc](/2/reference/rust/tauri/api/ipc): Types and functions related to Inter Procedure Call(IPC). +- [version](/2/reference/rust/tauri/api/version): Compare two semantic versions. +- [error](/2/reference/rust/tauri/api/error): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/api/ipc/index.md b/src/content/docs/2/reference/rust/tauri/api/ipc/index.md new file mode 100644 index 0000000000..170b4c0ba5 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/api/ipc/index.md @@ -0,0 +1,16 @@ +--- +title: 'Module tauri::api::ipc' +editUrl: false +prev: false +next: false +--- + + +Types and functions related to Inter Procedure Call(IPC). + +This module includes utilities to send messages to the JS layer of the webview. +## Structs + + +- [Channel](/2/reference/rust/tauri/Channel): An IPC channel. +- [CallbackFn](/2/reference/rust/tauri/CallbackFn): The `Callback` type is the return value of the `transformCallback` JavaScript function. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/api/version/index.md b/src/content/docs/2/reference/rust/tauri/api/version/index.md new file mode 100644 index 0000000000..7cb1f0fecd --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/api/version/index.md @@ -0,0 +1,12 @@ +--- +title: 'Module tauri::api::version' +editUrl: false +prev: false +next: false +--- + + +Compare two semantic versions. + +[Semantic Versioning](https://semver.org) is a guideline for how version numbers are assigned and incremented. +The functions on this module are helpers around [semver](https://docs.rs/semver/latest/semver/). diff --git a/src/content/docs/2/reference/rust/tauri/app/index.md b/src/content/docs/2/reference/rust/tauri/app/index.md new file mode 100644 index 0000000000..6a23090361 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/app/index.md @@ -0,0 +1,24 @@ +--- +title: 'Module tauri::app' +editUrl: false +prev: false +next: false +--- + + + +## Modules + + +- [tray](/2/reference/rust/tauri/app/tray): +## Structs + + +- [ExitRequestApi](/2/reference/rust/tauri/ExitRequestApi): Api exposed on the `ExitRequested` event. +- [CloseRequestApi](/2/reference/rust/tauri/CloseRequestApi): Api exposed on the `CloseRequested` event. +- [WindowMenuEvent](/2/reference/rust/tauri/WindowMenuEvent): A menu event that was triggered on a window. +- [GlobalWindowEvent](/2/reference/rust/tauri/GlobalWindowEvent): A window event that was triggered on the specified window. +- [AssetResolver](/2/reference/rust/tauri/AssetResolver): The asset resolver is a helper to access the [`tauri_utils::assets::Assets`] interface. +- [AppHandle](/2/reference/rust/tauri/AppHandle): A handle to the currently running application. +- [App](/2/reference/rust/tauri/App): The instance of the currently running application. +- [Builder](/2/reference/rust/tauri/Builder): Builds a Tauri application. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/app/tray/index.md b/src/content/docs/2/reference/rust/tauri/app/tray/index.md new file mode 100644 index 0000000000..b200cb1241 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/app/tray/index.md @@ -0,0 +1,15 @@ +--- +title: 'Module tauri::app::tray' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [SystemTray](/2/reference/rust/tauri/SystemTray): Represents a System Tray instance. +- [SystemTrayHandle](/2/reference/rust/tauri/SystemTrayHandle): A handle to a system tray. Allows updating the context menu items. +- [SystemTrayMenuItemHandle](/2/reference/rust/tauri/SystemTrayMenuItemHandle): A handle to a system tray menu item. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/asset_protocol/index.md b/src/content/docs/2/reference/rust/tauri/asset_protocol/index.md new file mode 100644 index 0000000000..42d4857f6d --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/asset_protocol/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri::asset_protocol' +editUrl: false +prev: false +next: false +--- + + + diff --git a/src/content/docs/2/reference/rust/tauri/async_runtime/index.md b/src/content/docs/2/reference/rust/tauri/async_runtime/index.md new file mode 100644 index 0000000000..53d2e9cff8 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/async_runtime/index.md @@ -0,0 +1,19 @@ +--- +title: 'Module tauri::async_runtime' +editUrl: false +prev: false +next: false +--- + + +The singleton async runtime used by Tauri and exposed to users. + +Tauri uses [`tokio`] Runtime to initialize code, such as +[`Plugin::initialize`](../plugin/trait.Plugin.html#method.initialize) and [`crate::Builder::setup`] hooks. +This module also re-export some common items most developers need from [`tokio`]. If there's +one you need isn't here, you could use types in [`tokio`] directly. +For custom command handlers, it's recommended to use a plain `async fn` command. +## Structs + + +- [GlobalRuntime](/2/reference/rust/tauri/GlobalRuntime): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/command/index.md b/src/content/docs/2/reference/rust/tauri/command/index.md new file mode 100644 index 0000000000..4acbd1c4b8 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/command/index.md @@ -0,0 +1,16 @@ +--- +title: 'Module tauri::command' +editUrl: false +prev: false +next: false +--- + + +The Tauri custom commands types and traits. + +You usually don't need to create these items yourself. These are created from [command](../attr.command.html) +attribute macro along the way and used by [`crate::generate_handler`] macro. +## Structs + + +- [CommandItem](/2/reference/rust/tauri/CommandItem): Represents a custom command. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/error/index.md b/src/content/docs/2/reference/rust/tauri/error/index.md new file mode 100644 index 0000000000..6a0496fc12 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/error/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri::error' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [SetupError](/2/reference/rust/tauri/SetupError): A generic boxed error. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/event/commands/index.md b/src/content/docs/2/reference/rust/tauri/event/commands/index.md new file mode 100644 index 0000000000..18d3d7f996 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/event/commands/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri::event::commands' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [EventId](/2/reference/rust/tauri/EventId): +- [WindowLabel](/2/reference/rust/tauri/WindowLabel): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/event/index.md b/src/content/docs/2/reference/rust/tauri/event/index.md new file mode 100644 index 0000000000..002dfda8a1 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/event/index.md @@ -0,0 +1,19 @@ +--- +title: 'Module tauri::event' +editUrl: false +prev: false +next: false +--- + + + +## Modules + + +- [commands](/2/reference/rust/tauri/event/commands): +- [listener](/2/reference/rust/tauri/event/listener): +## Structs + + +- [EventHandler](/2/reference/rust/tauri/EventHandler): Represents an event handler. +- [Event](/2/reference/rust/tauri/Event): An event that was triggered. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/event/listener/index.md b/src/content/docs/2/reference/rust/tauri/event/listener/index.md new file mode 100644 index 0000000000..227590c1f5 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/event/listener/index.md @@ -0,0 +1,15 @@ +--- +title: 'Module tauri::event::listener' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [Handler](/2/reference/rust/tauri/Handler): Stored in [`Listeners`] to be called upon when the event that stored it is triggered. +- [InnerListeners](/2/reference/rust/tauri/InnerListeners): Holds event handlers and pending event handlers, along with the salts associating them. +- [Listeners](/2/reference/rust/tauri/Listeners): A self-contained event manager. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/hooks/index.md b/src/content/docs/2/reference/rust/tauri/hooks/index.md new file mode 100644 index 0000000000..ab3d5949b9 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/hooks/index.md @@ -0,0 +1,20 @@ +--- +title: 'Module tauri::hooks' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [IpcJavascript](/2/reference/rust/tauri/IpcJavascript): +- [IsolationJavascript](/2/reference/rust/tauri/IsolationJavascript): +- [PageLoadPayload](/2/reference/rust/tauri/PageLoadPayload): The payload for the [`OnPageLoad`] hook. +- [InvokePayload](/2/reference/rust/tauri/InvokePayload): The payload used on the IPC invoke. +- [Invoke](/2/reference/rust/tauri/Invoke): The message and resolver given to a custom command. +- [InvokeError](/2/reference/rust/tauri/InvokeError): Error response from an [`InvokeMessage`]. +- [InvokeResolver](/2/reference/rust/tauri/InvokeResolver): Resolver of a invoke message. +- [InvokeMessage](/2/reference/rust/tauri/InvokeMessage): An invoke message. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/index.md b/src/content/docs/2/reference/rust/tauri/index.md new file mode 100644 index 0000000000..d40dfd68df --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/index.md @@ -0,0 +1,72 @@ +--- +title: 'Crate tauri' +editUrl: false +prev: false +next: false +--- + + +Tauri is a framework for building tiny, blazing fast binaries for all major desktop platforms. +Developers can integrate any front-end framework that compiles to HTML, JS and CSS for building their user interface. +The backend of the application is a rust-sourced binary with an API that the front-end can interact with. + +# Cargo features + +The following are a list of [Cargo features](https://doc.rust-lang.org/stable/cargo/reference/manifest.html#the-features-section) that can be enabled or disabled: + +- **wry** *(enabled by default)*: Enables the [wry](https://github.com/tauri-apps/wry) runtime. Only disable it if you want a custom runtime. +- **test**: Enables the [`test`] module exposing unit test helpers. +- **dox**: Internal feature to generate Rust documentation without linking on Linux. +- **objc-exception**: Wrap each msg_send! in a @try/@catch and panics if an exception is caught, preventing Objective-C from unwinding into Rust. +- **linux-protocol-headers**: Enables headers support for custom protocol requests on Linux. Requires webkit2gtk v2.36 or above. +- **isolation**: Enables the isolation pattern. Enabled by default if the `tauri > pattern > use` config option is set to `isolation` on the `tauri.conf.json` file. +- **custom-protocol**: Feature managed by the Tauri CLI. When enabled, Tauri assumes a production environment instead of a development one. +- **devtools**: Enables the developer tools (Web inspector) and [`Window::open_devtools`]. Enabled by default on debug builds. +On macOS it uses private APIs, so you can't enable it if your app will be published to the App Store. +- **native-tls**: Provides TLS support to connect over HTTPS. +- **native-tls-vendored**: Compile and statically link to a vendored copy of OpenSSL. +- **rustls-tls**: Provides TLS support to connect over HTTPS using rustls. +- **process-relaunch-dangerous-allow-symlink-macos**: Allows the [`process::current_binary`] function to allow symlinks on macOS (this is dangerous, see the Security section in the documentation website). +- **system-tray**: Enables application system tray API. Enabled by default if the `systemTray` config is defined on the `tauri.conf.json` file. +- **macos-private-api**: Enables features only available in **macOS**'s private APIs, currently the `transparent` window functionality and the `fullScreenEnabled` preference setting to `true`. Enabled by default if the `tauri > macosPrivateApi` config flag is set to `true` on the `tauri.conf.json` file. +- **window-data-url**: Enables usage of data URLs on the webview. +- **compression** *(enabled by default): Enables asset compression. You should only disable this if you want faster compile times in release builds - it produces larger binaries. +- **config-json5**: Adds support to JSON5 format for `tauri.conf.json`. +- **config-toml**: Adds support to TOML format for the configuration `Tauri.toml`. +- **icon-ico**: Adds support to set `.ico` window icons. Enables [`Icon::File`] and [`Icon::Raw`] variants. +- **icon-png**: Adds support to set `.png` window icons. Enables [`Icon::File`] and [`Icon::Raw`] variants. + +## Cargo allowlist features + +The following are a list of [Cargo features](https://doc.rust-lang.org/stable/cargo/reference/manifest.html#the-features-section) that enables commands for Tauri's API package. +These features are automatically enabled by the Tauri CLI based on the `allowlist` configuration under `tauri.conf.json`. + +### Protocol allowlist + +- **protocol-asset**: Enables the `asset` custom protocol. +## Modules + + +- [api](/2/reference/rust/tauri/api): The Tauri API interface. +- [app](/2/reference/rust/tauri/app): +- [asset_protocol](/2/reference/rust/tauri/asset_protocol): +- [async_runtime](/2/reference/rust/tauri/async_runtime): The singleton async runtime used by Tauri and exposed to users. +- [command](/2/reference/rust/tauri/command): The Tauri custom commands types and traits. +- [error](/2/reference/rust/tauri/error): +- [event](/2/reference/rust/tauri/event): +- [hooks](/2/reference/rust/tauri/hooks): +- [manager](/2/reference/rust/tauri/manager): +- [pattern](/2/reference/rust/tauri/pattern): +- [plugin](/2/reference/rust/tauri/plugin): The Tauri plugin extension to expand Tauri functionality. +- [vibrancy](/2/reference/rust/tauri/vibrancy): +- [window](/2/reference/rust/tauri/window): The Tauri window types and functions. +- [path](/2/reference/rust/tauri/path): Path APIs. +- [process](/2/reference/rust/tauri/process): Types and functions related to child processes management. +- [scope](/2/reference/rust/tauri/scope): The allowlist scopes. +- [state](/2/reference/rust/tauri/state): +- [sealed](/2/reference/rust/tauri/sealed): Prevent implementation details from leaking out of the [`Manager`] trait. +- [test](/2/reference/rust/tauri/test): Utilities for unit testing on Tauri applications. +## Structs + + +- [Context](/2/reference/rust/tauri/Context): User supplied data required inside of a Tauri application. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/manager/index.md b/src/content/docs/2/reference/rust/tauri/manager/index.md new file mode 100644 index 0000000000..0aae7cf9af --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/manager/index.md @@ -0,0 +1,18 @@ +--- +title: 'Module tauri::manager' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [CspHashStrings](/2/reference/rust/tauri/CspHashStrings): Spaced and quoted Content-Security-Policy hash values. +- [InnerWindowManager](/2/reference/rust/tauri/InnerWindowManager): +- [Asset](/2/reference/rust/tauri/Asset): A resolved asset. +- [CustomProtocol](/2/reference/rust/tauri/CustomProtocol): Uses a custom URI scheme handler to resolve file requests +- [WindowManager](/2/reference/rust/tauri/WindowManager): +- [ScaleFactorChanged](/2/reference/rust/tauri/ScaleFactorChanged): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/path/commands/index.md b/src/content/docs/2/reference/rust/tauri/path/commands/index.md new file mode 100644 index 0000000000..70d9631fbb --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/path/commands/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri::path::commands' +editUrl: false +prev: false +next: false +--- + + + diff --git a/src/content/docs/2/reference/rust/tauri/path/desktop/index.md b/src/content/docs/2/reference/rust/tauri/path/desktop/index.md new file mode 100644 index 0000000000..c90372b6f5 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/path/desktop/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri::path::desktop' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [PathResolver](/2/reference/rust/tauri/PathResolver): A helper class to access the mobile camera APIs. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/path/error/index.md b/src/content/docs/2/reference/rust/tauri/path/error/index.md new file mode 100644 index 0000000000..b8e3148211 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/path/error/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri::path::error' +editUrl: false +prev: false +next: false +--- + + + diff --git a/src/content/docs/2/reference/rust/tauri/path/index.md b/src/content/docs/2/reference/rust/tauri/path/index.md new file mode 100644 index 0000000000..fce000f621 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/path/index.md @@ -0,0 +1,20 @@ +--- +title: 'Module tauri::path' +editUrl: false +prev: false +next: false +--- + + +Path APIs. +## Modules + + +- [commands](/2/reference/rust/tauri/path/commands): +- [error](/2/reference/rust/tauri/path/error): +- [desktop](/2/reference/rust/tauri/path/desktop): +## Structs + + +- [SafePathBuf](/2/reference/rust/tauri/SafePathBuf): A wrapper for [`PathBuf`] that prevents path traversal. +- [InitJavascript](/2/reference/rust/tauri/InitJavascript): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/pattern/index.md b/src/content/docs/2/reference/rust/tauri/pattern/index.md new file mode 100644 index 0000000000..b28942cebb --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/pattern/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri::pattern' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [PatternJavascript](/2/reference/rust/tauri/PatternJavascript): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/plugin/index.md b/src/content/docs/2/reference/rust/tauri/plugin/index.md new file mode 100644 index 0000000000..6b4ac06283 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/plugin/index.md @@ -0,0 +1,17 @@ +--- +title: 'Module tauri::plugin' +editUrl: false +prev: false +next: false +--- + + +The Tauri plugin extension to expand Tauri functionality. +## Structs + + +- [PluginHandle](/2/reference/rust/tauri/PluginHandle): A handle to a plugin. +- [PluginApi](/2/reference/rust/tauri/PluginApi): Api exposed to the plugin setup hook. +- [Builder](/2/reference/rust/tauri/Builder): Builds a [`TauriPlugin`]. +- [TauriPlugin](/2/reference/rust/tauri/TauriPlugin): Plugin struct that is returned by the [`Builder`]. Should only be constructed through the builder. +- [PluginStore](/2/reference/rust/tauri/PluginStore): Plugin collection type. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/process/index.md b/src/content/docs/2/reference/rust/tauri/process/index.md new file mode 100644 index 0000000000..b932c82605 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/process/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri::process' +editUrl: false +prev: false +next: false +--- + + +Types and functions related to child processes management. diff --git a/src/content/docs/2/reference/rust/tauri/scope/fs/index.md b/src/content/docs/2/reference/rust/tauri/scope/fs/index.md new file mode 100644 index 0000000000..92ab6a2326 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/scope/fs/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri::scope::fs' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [Scope](/2/reference/rust/tauri/Scope): Scope for filesystem access. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/scope/index.md b/src/content/docs/2/reference/rust/tauri/scope/index.md new file mode 100644 index 0000000000..4b544959de --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/scope/index.md @@ -0,0 +1,18 @@ +--- +title: 'Module tauri::scope' +editUrl: false +prev: false +next: false +--- + + +The allowlist scopes. +## Modules + + +- [fs](/2/reference/rust/tauri/scope/fs): +- [ipc](/2/reference/rust/tauri/scope/ipc): IPC scope. +## Structs + + +- [Scopes](/2/reference/rust/tauri/Scopes): Managed state for all the core scopes in a tauri application. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/scope/ipc/index.md b/src/content/docs/2/reference/rust/tauri/scope/ipc/index.md new file mode 100644 index 0000000000..0a04df2b74 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/scope/ipc/index.md @@ -0,0 +1,15 @@ +--- +title: 'Module tauri::scope::ipc' +editUrl: false +prev: false +next: false +--- + + +IPC scope. +## Structs + + +- [RemoteDomainAccessScope](/2/reference/rust/tauri/RemoteDomainAccessScope): IPC access configuration for a remote domain. +- [RemoteAccessError](/2/reference/rust/tauri/RemoteAccessError): +- [Scope](/2/reference/rust/tauri/Scope): IPC scope. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/sealed/index.md b/src/content/docs/2/reference/rust/tauri/sealed/index.md new file mode 100644 index 0000000000..2d6f7e2dbe --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/sealed/index.md @@ -0,0 +1,9 @@ +--- +title: 'Module tauri::sealed' +editUrl: false +prev: false +next: false +--- + + +Prevent implementation details from leaking out of the [`Manager`] trait. diff --git a/src/content/docs/2/reference/rust/tauri/state/index.md b/src/content/docs/2/reference/rust/tauri/state/index.md new file mode 100644 index 0000000000..42dcc64010 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/state/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri::state' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [State](/2/reference/rust/tauri/State): A guard for a state value. +- [StateManager](/2/reference/rust/tauri/StateManager): The Tauri state manager. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/test/index.md b/src/content/docs/2/reference/rust/tauri/test/index.md new file mode 100644 index 0000000000..7973cfc1ed --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/test/index.md @@ -0,0 +1,69 @@ +--- +title: 'Module tauri::test' +editUrl: false +prev: false +next: false +--- + + +Utilities for unit testing on Tauri applications. + +# Stability + +This module is unstable. + +# Examples + +```rust +#[tauri::command] +fn my_cmd() {} + +fn create_app(mut builder: tauri::Builder) -> tauri::App { + builder + .setup(|app| { + // do something + Ok(()) + }) + .invoke_handler(tauri::generate_handler![my_cmd]) + // remove the string argument on your app + .build(tauri::generate_context!("test/fixture/src-tauri/tauri.conf.json")) + .expect("failed to build app") +} + +fn main() { + let app = create_app(tauri::Builder::default()); + // app.run(|_handle, _event| {}); +} + +//#[cfg(test)] +mod tests { + use tauri::Manager; + //#[cfg(test)] + fn something() { + let app = super::create_app(tauri::test::mock_builder()); + let window = app.get_window("main").unwrap(); + // do something with the app and window + // in this case we'll run the my_cmd command with no arguments + tauri::test::assert_ipc_response( + &window, + tauri::InvokePayload { + cmd: "my_cmd".into(), + callback: tauri::api::ipc::CallbackFn(0), + error: tauri::api::ipc::CallbackFn(1), + inner: serde_json::Value::Null, + }, + Ok(()) + ); + } +} +``` +## Modules + + +- [mock_runtime](/2/reference/rust/tauri/test/mock_runtime): +## Structs + + +- [IpcKey](/2/reference/rust/tauri/IpcKey): +- [Ipc](/2/reference/rust/tauri/Ipc): +- [NoopAsset](/2/reference/rust/tauri/NoopAsset): An empty [`Assets`] implementation. \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/test/mock_runtime/index.md b/src/content/docs/2/reference/rust/tauri/test/mock_runtime/index.md new file mode 100644 index 0000000000..7422de80e3 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/test/mock_runtime/index.md @@ -0,0 +1,20 @@ +--- +title: 'Module tauri::test::mock_runtime' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [Window](/2/reference/rust/tauri/Window): +- [RuntimeContext](/2/reference/rust/tauri/RuntimeContext): +- [MockRuntimeHandle](/2/reference/rust/tauri/MockRuntimeHandle): +- [MockDispatcher](/2/reference/rust/tauri/MockDispatcher): +- [MockWindowBuilder](/2/reference/rust/tauri/MockWindowBuilder): +- [MockTrayHandler](/2/reference/rust/tauri/MockTrayHandler): +- [EventProxy](/2/reference/rust/tauri/EventProxy): +- [MockRuntime](/2/reference/rust/tauri/MockRuntime): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/vibrancy/index.md b/src/content/docs/2/reference/rust/tauri/vibrancy/index.md new file mode 100644 index 0000000000..751c04eaa3 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/vibrancy/index.md @@ -0,0 +1,13 @@ +--- +title: 'Module tauri::vibrancy' +editUrl: false +prev: false +next: false +--- + + + +## Modules + + +- [windows](/2/reference/rust/tauri/vibrancy/windows): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/vibrancy/windows/index.md b/src/content/docs/2/reference/rust/tauri/vibrancy/windows/index.md new file mode 100644 index 0000000000..cfd0c7009b --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/vibrancy/windows/index.md @@ -0,0 +1,14 @@ +--- +title: 'Module tauri::vibrancy::windows' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [ACCENT_POLICY](/2/reference/rust/tauri/ACCENT_POLICY): +- [WINDOWCOMPOSITIONATTRIBDATA](/2/reference/rust/tauri/WINDOWCOMPOSITIONATTRIBDATA): \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/window/index.md b/src/content/docs/2/reference/rust/tauri/window/index.md new file mode 100644 index 0000000000..f35adce8d2 --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/window/index.md @@ -0,0 +1,23 @@ +--- +title: 'Module tauri::window' +editUrl: false +prev: false +next: false +--- + + +The Tauri window types and functions. +## Modules + + +- [menu](/2/reference/rust/tauri/window/menu): +## Structs + + +- [WindowCreatedEvent](/2/reference/rust/tauri/WindowCreatedEvent): +- [Monitor](/2/reference/rust/tauri/Monitor): Monitor descriptor. +- [WindowBuilder](/2/reference/rust/tauri/WindowBuilder): A builder for a webview window managed by Tauri. +- [JsEventListenerKey](/2/reference/rust/tauri/JsEventListenerKey): Key for a JS event listener. +- [Window](/2/reference/rust/tauri/Window): A webview window managed by Tauri. +- [PlatformWebview](/2/reference/rust/tauri/PlatformWebview): The platform webview handle. Accessed with [`Window#method.with_webview`]; +- [EffectsBuilder](/2/reference/rust/tauri/EffectsBuilder): The [`WindowEffectsConfig`] object builder \ No newline at end of file diff --git a/src/content/docs/2/reference/rust/tauri/window/menu/index.md b/src/content/docs/2/reference/rust/tauri/window/menu/index.md new file mode 100644 index 0000000000..95f8e0810f --- /dev/null +++ b/src/content/docs/2/reference/rust/tauri/window/menu/index.md @@ -0,0 +1,15 @@ +--- +title: 'Module tauri::window::menu' +editUrl: false +prev: false +next: false +--- + + + +## Structs + + +- [MenuEvent](/2/reference/rust/tauri/MenuEvent): The window menu event. +- [MenuHandle](/2/reference/rust/tauri/MenuHandle): A handle to a system tray. Allows updating the context menu items. +- [MenuItemHandle](/2/reference/rust/tauri/MenuItemHandle): A handle to a system tray menu item. \ No newline at end of file