Skip to content

Endpoints by Build Type (Centralized) ​

This page centralizes the endpoints exposed for each build/runtime type.

Overview ​

Build TypePackage / SurfacePrimary Endpoints
WASM (Web/Node)@acajoo/giovanni-corecompressPdf, getAvailableCompressionEngines, initCompressionEngine, inspectPdf, checkPdf, splitPdf, mergePdfs, organizePdf, watermarkPdf, extractImages
React Native JSI@acajoo/giovanni-react-native + globalThis.giovannisetupGiovanni, getVersion, writePdf, splitPages, mergePdfs, getDocumentInfo, extractImages
Native C FFIgiovanni_c.hgiovanni_qpdf_create, giovanni_qpdf_destroy, giovanni_get_version, giovanni_write_options_default, giovanni_write_pdf, giovanni_split_pages, giovanni_merge_pdfs, giovanni_get_document_info, giovanni_ghostscript_create, giovanni_ghostscript_destroy, giovanni_get_ghostscript_version, giovanni_rewrite_pdf, giovanni_buffer_free, giovanni_pages_free, giovanni_document_info_free, giovanni_last_error

Details by Build ​

1. WASM (Web/Node) ​

Application import:

ts
import {
    compressPdf,
    getAvailableCompressionEngines,
    initCompressionEngine,
    inspectPdf,
    checkPdf,
    splitPdf,
    mergePdfs,
    organizePdf,
    watermarkPdf,
    extractImages,
} from "@acajoo/giovanni-core";

See details:

2. React Native JSI ​

Setup endpoint:

ts
import { setupGiovanni } from "@acajoo/giovanni-react-native";
setupGiovanni();

Native JSI endpoints exposed on globalThis.giovanni:

  • getVersion()
  • writePdf(data, opts?, password?)
  • splitPages(data)
  • mergePdfs(inputs)
  • getDocumentInfo(data, password?)
  • extractImages(data)

See details:

3. Native C FFI ​

C endpoints exposed by giovanni_c.h:

  • Lifecycle: giovanni_qpdf_create, giovanni_qpdf_destroy, giovanni_ghostscript_create, giovanni_ghostscript_destroy
  • Version: giovanni_get_version, giovanni_get_ghostscript_version
  • Write options: giovanni_write_options_default
  • Operations: giovanni_write_pdf, giovanni_split_pages, giovanni_merge_pdfs, giovanni_get_document_info, giovanni_rewrite_pdf
  • Memory: giovanni_buffer_free, giovanni_pages_free, giovanni_document_info_free
  • Errors: giovanni_last_error

Ghostscript support (giovanni_rewrite_pdf, giovanni_get_ghostscript_version) is decided at native-library build time the handle always creates, but those two calls return an error if the library was built without Ghostscript linked in. See Ghostscript support.

See details:

Notes ​

  • JSI endpoints are synchronous at the native bridge level.
  • The TypeScript binding then exposes them via async methods.
  • The Ghostscript JSI binding is declared, but the native Ghostscript JSI target is not yet fully implemented.
  • The native C FFI target's Ghostscript support is implemented (Linux via a static archive, Windows via a DLL import lib), but is optional at build time — see Ghostscript support.