bgustdown
v0.1.4
Published
High-performance document-to-markdown converter in Rust with NAPI-RS bindings.
Readme
bgustdown 🚀
💡 La Visión
bgustdown es una solución de ingeniería de datos de nivel industrial construida desde cero en Rust. Está diseñada para eliminar los cuellos de botella de rendimiento en pipelines de IA, RAG (Retrieval-Augmented Generation) y fine-tuning de LLMs, transformando archivos binarios corporativos complejos en Markdown estructurado y conjuntos de datos semánticos sin latencias innecesarias ni dependencias pesadas de runtime.
🌟 Características Clave
- Motor de Ingesta Multi-Formato Ultra-Rápido (Rust):
- PDF: Extracción estructurada y limpia de texto y capas vectoriales usando
lopdfandpdf-extract. - Office (DOCX / ODT / XLSX): Conversión directa de esquemas XML (a través de
quick-xmlycalamine) a Markdown, preservando tablas, listas y jerarquías de cabeceras.
- PDF: Extracción estructurada y limpia de texto y capas vectoriales usando
- Formato de Tablas Basado en Apache Arrow:
- Representación interna de datos tabulares (CSV y hojas XLSX) usando Apache Arrow, lo que permite operaciones en memoria ultrarrápidas y conversiones de esquemas sin copia de memoria (Zero-Copy).
- Procesamiento de Texto y Tokenización Local:
- Integración nativa con
tokenizersde Hugging Face y modelos localescandle-corepara segmentación semántica de oraciones orientada a entrenamiento RAG y NLP.
- Integración nativa con
- Soporte NAPI-RS Nativo:
- Bindings dinámicos y de alto rendimiento compilados en C/C++ cargados directamente por Node.js sin sobrecoste de llamadas externas.
🏗️ Arquitectura del Repositorio
El proyecto ha consolidado su arquitectura monorrama en main, centralizando el desarrollo del core y organizando las configuraciones y manifiestos de distribución en el directorio docs/:
[ bgustdown Core ]
│
┌────────────────────────────┼────────────────────────────┐
▼ (Librería Rust) ▼ (Bindings Node/NAPI) ▼ (Skill para Agentes)
[ Canal Crates.io (v0.1.4) ] [ Canal NPM / CLI (v0.1.4) ] [ Canal Skill de IA ]
- docs/crates/ - docs/npm/ - docs/skill/
- Importable como rlib - Binario cdylib (.node) - install_skill.sh📦 Canales de Distribución
1. Canal Rust (Crates.io) 🦀
- Versión Activa:
v0.1.4 - Tipo de Biblioteca: Estática (
rlib). - Uso: Añade
bgustdowna tu proyecto Rust:[dependencies] bgustdown = "0.1.4" - Ver detalles de publicación en: docs/crates/README.md.
2. Canal Node.js & CLI (NPM) 🟢
- Versión Activa:
v0.1.4 - Tipo de Biblioteca: Dinámica (
cdylibmediante NAPI-RS). - Instalación:
npm install -g bgustdown - Ver detalles de publicación en: docs/npm/README.md.
3. Canal Skill para Agentes de IA 🧠
- Integra las herramientas
convert_fileyprepare_nlp_datadirectamente en agentes autónomos (como Claude). - Ver detalles y manifiesto en: docs/skill/SKILL.md.
🛠️ Instalación y Compilación de Desarrollo
Si deseas compilar la librería dinámica y probar el CLI en tu entorno de desarrollo local:
Clonar el repositorio:
git clone https://github.com/B-GUST/bgustdown.git cd bgustdownInstalar dependencias de desarrollo e iniciar compilación:
npm install npm run buildEjecutar el CLI:
node cli.js convert ruta/a/tu/archivo.pdf
🤖 Guía de Uso del CLI Global
Una vez enlazado o instalado globalmente:
| Comando | Acción |
| :--- | :--- |
| bgustdown convert <file_path> | Conversión universal a Markdown. |
| bgustdown prepare <file_path> | Segmentación y estructuración en JSON de datos NLP. |
📜 Licencia y Créditos
Este proyecto se distribuye bajo la licencia MIT. Consulta el archivo CREDITS.md para atribuciones a las librerías de terceros (Apache Arrow, Calamine, NAPI-RS, Candle).
