{
  "url": "https://unifast.dev/vi/docs/introduction/what-is-unifast/",
  "locale": "vi",
  "title": "unifast là gì?",
  "description": "unifast là trình biên dịch Markdown và MDX hiệu năng cao với lõi Rust. Các pass tích hợp sẵn cho GFM, sanitization, highlighting và TOC.",
  "section": "introduction",
  "body": "unifast là trình biên dịch Markdown và MDX hiệu năng cao với lõi viết bằng Rust. Nó đáp ứng phần lớn các trường hợp sử dụng phổ biến của remark/rehype bằng cách hiện thực hóa các tính năng trực tiếp như pass tích hợp sẵn - chứ không dựa vào khả năng tương thích với plugin JS.\n\n### Tại sao chọn unifast?\n\nCác toolchain Markdown truyền thống như unified/remark/rehype rất mạnh mẽ nhưng đi kèm với những đánh đổi:\n\n- **Chi phí hiệu năng** - Nhiều phép biến đổi AST trong JS cộng dồn lại, đặc biệt khi quy mô lớn.\n- **Phối hợp plugin** - Vấn đề về thứ tự, khả năng tương thích và trùng lặp giữa hàng chục plugin.\n- **Không có tính năng tích hợp sẵn** - Ngay cả những tác vụ cơ bản như GFM hay sanitization cũng cần các gói riêng biệt.\n\nunifast lựa chọn một hướng tiếp cận khác:\n\n- **Lõi Rust** - Parsing, biến đổi và xuất ra đều diễn ra trong mã native.\n- **Pass tích hợp sẵn** - Các tính năng phổ biến (GFM, sanitization, highlighting, TOC) được tích hợp sẵn, không phải lắp ghép thêm.\n- **Biên dịch một lần** - Một lời gọi biên dịch Markdown thành HTML với toàn bộ tính năng được áp dụng.\n\n### Tính năng chính\n\n| Tính năng | Mô tả |\n|---------|-------------|\n| **CommonMark + GFM** | Bảng, danh sách tác vụ, gạch ngang, autolink, chú thích cuối |\n| **Frontmatter** | Trích xuất metadata YAML, TOML và JSON |\n| **MDX** | Biểu thức JSX và import trong Markdown |\n| **Diagnostics** | Vùng lỗi chính xác kèm ánh xạ dòng/cột |\n\n### Pass tích hợp sẵn\n\nCác plugin remark/rehype phổ biến được viết lại dưới dạng pass Rust native. Không cần npm install, không phải đau đầu vì thứ tự.\n\n| Pass | Mô tả |\n|------|-------------|\n| **Sanitization** | Danh sách trắng HTML dựa trên schema với mặc định an toàn |\n| **Syntax Highlighting** | Engine có thể thay thế (syntect, Shiki) |\n| **Table of Contents** | Cây tiêu đề được trích xuất tự động |\n\n### Hỗ trợ nền tảng\n\nunifast chạy trên nhiều nền tảng từ một lõi Rust duy nhất:\n\n- **`@unifast/node`** - Binding Node.js qua N-API (napi-rs). Đây là target chính.\n- **`@unifast/core`** - Định nghĩa kiểu TypeScript dùng chung cho toàn bộ các gói.\n- **`unifast` (CLI)** - Giao diện dòng lệnh phục vụ script và CI.\n- **WASM** - Hỗ trợ trình duyệt và edge runtime (target phụ).\n\n### Những điều unifast không hướng tới\n\nunifast **không** phải là bản thay thế trực tiếp cho unified. Nó không:\n\n- Thực thi các plugin JS của remark/rehype hiện có bên trong lõi.\n- Cung cấp API tương thích với hệ sinh thái unified.\n- Phụ thuộc vào module resolution của Node trong đường dẫn biên dịch chính.\n\nThay vào đó, unifast hướng đến **độ hoàn chỉnh theo use-case** - đáp ứng đầy đủ những gì hầu hết dự án cần mà không phải tự lắp ráp pipeline plugin phức tạp.",
  "alternates": [
    {
      "locale": "en",
      "url": "https://unifast.dev/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "ja",
      "url": "https://unifast.dev/ja/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/ja/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "zh-CN",
      "url": "https://unifast.dev/zh-CN/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/zh-CN/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "zh-TW",
      "url": "https://unifast.dev/zh-TW/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/zh-TW/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "ko",
      "url": "https://unifast.dev/ko/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/ko/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "fr",
      "url": "https://unifast.dev/fr/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/fr/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "it",
      "url": "https://unifast.dev/it/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/it/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "es",
      "url": "https://unifast.dev/es/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/es/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "pt-BR",
      "url": "https://unifast.dev/pt-BR/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/pt-BR/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "de",
      "url": "https://unifast.dev/de/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/de/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "ru",
      "url": "https://unifast.dev/ru/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/ru/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "hi",
      "url": "https://unifast.dev/hi/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/hi/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "id",
      "url": "https://unifast.dev/id/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/id/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "tr",
      "url": "https://unifast.dev/tr/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/tr/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "vi",
      "url": "https://unifast.dev/vi/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/vi/docs/introduction/what-is-unifast.json"
    }
  ]
}
