Documentación
Cómo abrir, validar, buscar y citar ficheros SPDF en Rust, TypeScript, Python, Swift, Kotlin, Go, C#, PHP, Ruby, R, Julia y C.
Revisado Markdown
Todas las implementaciones ofrecen las mismas operaciones con los nombres y las costumbres de su lenguaje. Elige el tuyo: cada hoja trae la línea de instalación, un primer ejemplo y el README completo de la biblioteca (en inglés, como el código).
- Rust
cargo add spdfImplementación de referencia; da además la ABI de C. - TypeScript
npm install spdf-formatNode (node:sqlite), Bun y el navegador (sqlite-wasm). Es la que mueve el validador de esta web. - Python
pip install spdf-formatSolo sqlite3 de la biblioteca estándar; se importa como spdf. - Swift
.package(url: "https://github.com/joseluissaorin/spdf", from: "5.0.0")Swift Package Manager, desde el repositorio. Plataformas de Apple y Linux. - Kotlin / JVM
implementation("io.github.joseluissaorin:spdf:5.0.0")Kotlin y Java sobre la JVM y Android. - Go
go get github.com/joseluissaorin/spdf/goMódulo de Go dentro del monorepo. - C# / .NET
dotnet add package Spdf.Format.NET con Microsoft.Data.Sqlite.CI en rojo - PHP
composer require joseluissaorin/spdfPDO SQLite. - Ruby
gem install spdf-formatSobre la gema sqlite3. - R
remotes::install_github("joseluissaorin/spdf", subdir = "r")Sobre RSQLite; los fragmentos como data frames. - Julia
pkg> add SPDFSobre SQLite.jl. - C
#include "spdf.h" /* link with -lspdf */ABI de C sobre el núcleo de Rust, para C, C++ y cualquier FFI.
Las mismas operaciones en todas
| Operación | Qué devuelve |
|---|---|
| abrir | Un acceso de solo lectura a un fichero 5.0 o heredado 4.x, abierto con seguridad |
| validar | {valid, version, profile, errors, warnings} con los códigos de la especificación |
| volcar | El JSON canónico del fichero (RFC 8785) |
| buscar (léxica, vectorial, híbrida) | Resultados {fragment_id, score, via, anchor, anchor_uri} |
| URI de ancla | Escribir y leer URI spdf:, byte a byte |
| citar | (Apellido, Año, localizador) en castellano o en inglés |
| exportar | CSL-JSON y BibTeX |
| construir | Un SPDF nuevo y válido a partir de tus propios datos |
Sin ninguna biblioteca
Un fichero SPDF es una base de datos SQLite. Cualquier herramienta que hable SQLite lo lee; solo hay que tener cuidado con las reglas de seguridad y con las anclas.
sqlite3 -readonly darwin-origin.spdf "SELECT key, value FROM spdf_meta"
sqlite3 -readonly darwin-origin.spdf \
"SELECT f.id, u.printed, substr(f.text, 1, 80)
FROM fragments_fts JOIN fragments f ON f.n = fragments_fts.rowid
JOIN units u ON u.id = f.unit
WHERE fragments_fts MATCH 'selection' LIMIT 5"Los ficheros heredados 4.x de Scholaris vienen envueltos en gzip: antes, gzip -dc viejo.spdf > viejo.sqlite.