# Genera un APKG de Anki con Rust

Canonical page: https://ankiforge.dev/es/docs/quickstart/
Language: es
Description: Instala el paquete de Rust, crea una tarjeta de vocabulario y exporta un archivo APKG persistente con un programa completo.

Usa Rust 1.92 o posterior. Si prefieres otro lenguaje, elige [Node / TypeScript o Python](https://ankiforge.dev/es/docs/languages/).

## Instalación

```sh
cargo new anki-deck
cd anki-deck
cargo add ankiforge@0.3.1
```

## Exporta tu primer mazo

Guarda este programa completo como `src/main.rs`:

```rust
use ankiforge::{BuildOptions, Note, Project};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut project = Project::new("spanish")?.default_deck("Spanish");
    project.add("es:hola", Note::basic("hola", "hello"))?;
    let output = project.build(BuildOptions::to("spanish.apkg"))?;
    println!("{}", output.artifact().path().display());
    Ok(())
}
```

```sh
cargo run
```

El programa escribe el archivo persistente `spanish.apkg`. Ábrelo en Anki, impórtalo y estudia **hola → hello** en el mazo **Spanish**. No necesitas instalar Anki para exportar el archivo.

El espacio de nombres `spanish` y la clave estable `es:hola` identifican esta nota aunque cambie su contenido. También puedes [descargar el ejemplo Basic del sitio](https://ankiforge.dev/generated/spanish.apkg).

## Continúa

Sigue el [tutorial de JSON a Anki](https://ankiforge.dev/es/docs/json-to-anki/#rust) para completar un flujo con recursos multimedia y actualizaciones.

Añade [imágenes y audio](https://ankiforge.dev/es/docs/media/), [tipos de nota personalizados](https://ankiforge.dev/es/docs/custom-notetypes/) u [oclusión de imágenes](https://ankiforge.dev/es/docs/image-occlusion/). Conserva el APKG original de distribución antes de [comparar y publicar una actualización](https://ankiforge.dev/es/docs/updates/). Consulta la [API de Rust](https://ankiforge.dev/es/docs/rust-api/) o los [entornos verificados](https://ankiforge.dev/es/docs/compatibility/) para obtener más detalles.
