Skip to content

Add folio v0.9.1 bindings and rebuild native libraries#6

Merged
carlos7ags merged 2 commits into
mainfrom
feat/folio-0.9.1-bindings
Jun 11, 2026
Merged

Add folio v0.9.1 bindings and rebuild native libraries#6
carlos7ags merged 2 commits into
mainfrom
feat/folio-0.9.1-bindings

Conversation

@carlos7ags

Copy link
Copy Markdown
Owner

Summary

Bumps the bundled folio engine v0.7.1 → v0.9.1 and binds the five new C ABI functions added across folio 0.8.0/0.9.0/0.9.1. Targets SDK release 0.3.0.

New bindings + public API

C ABI Java API
folio_document_set_language Document.Builder.language(String)
folio_font_parse_for_language Font.parseForLanguage(byte[], String)
folio_paragraph_measure_lines Paragraph.measureLines(double)
folio_paragraph_measure_height Paragraph.measureHeight(double)
folio_paragraph_split_after_line Paragraph.splitAfterLine(int, double)Paragraph.Split(head, tail)

After this, FolioNative binds 393/393 of the v0.9.1 C ABI (100% coverage). The C ABI grew by exactly these 5 between v0.7.1 and v0.9.1 — everything else in those releases was engine bug fixes (shipped via the rebuilt native lib) or Go-only surface.

Native libraries

All five rebuilt from folio v0.9.1, so the SDK ships the 0.8.0/0.9.0/0.9.1 engine work (border-radius, @page/position:fixed/margin boxes, list pagination + multi-level CSS-counter numbering, table rowspan, scannable QR encoder, shaping fixes). build-natives.yml bumped to Go 1.25 (required by folio v0.9.1). macOS x86_64 was cross-compiled locally (clang -arch x86_64) to avoid a stuck Intel runner; the other four are from the build-natives workflow. All five verified to carry the new symbols.

Tests

Folio091BindingsTest covers all five new methods (language metadata, parse-for-language face selection, measure lines/height, split head+tail). Full suite green locally against the v0.9.1 macOS lib.

Notes

  • Additive / non-breaking.
  • CHANGELOG [0.3.0] added.

Bind the five C ABI functions added since the v0.7.1 engine (folio v0.8.0–
v0.9.1) and surface them in the public API:

- folio_document_set_language   -> Document.Builder.language(String)
- folio_font_parse_for_language -> Font.parseForLanguage(byte[], String)
- folio_paragraph_measure_lines -> Paragraph.measureLines(double)
- folio_paragraph_measure_height-> Paragraph.measureHeight(double)
- folio_paragraph_split_after_line -> Paragraph.splitAfterLine(int, double)
  returning Paragraph.Split(head, tail)

Bump build-natives.yml to Go 1.25 (required by folio v0.9.1). Add
Folio091BindingsTest covering all five. Native libraries are rebuilt from
folio v0.9.1 in a follow-up commit.
Rebuild the five bundled native libraries against the folio v0.9.1 engine so
the SDK ships the 0.8.0/0.9.0/0.9.1 fixes (border-radius, paged media, list
pagination + counters, table rowspan, QR encoder, shaping) and exposes the
five new C ABI symbols the bindings depend on.

macos-aarch64, linux-x86_64, linux-aarch64, windows-x86_64 are built by the
build-natives workflow (Go 1.25); macos-x86_64 is cross-compiled locally
(clang -arch x86_64) and verified to carry the new symbols.
@carlos7ags carlos7ags merged commit 4375176 into main Jun 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant