Help · Integration

Language bindings overview

OfficeAPI's dynamic library ships with bindings for Rust, Go, Java, C++, and Python, plus a process path for every other language.

Definition. A language binding is a thin layer that lets an application written in a given language call OfficeAPI's native dynamic library directly. OfficeAPI provides bindings for 5 named languages and supports other popular languages through the same native library.

Which bindings are provided?

Language Provided binding Typical use
Rust Yes (the engine's own language) Native applications and services
Go Yes Backend services, CLIs
Java Yes Android and JVM services
C++ Yes Desktop applications, embedded
Python Yes Pipelines, tooling
Other popular languages Via the native library

What if your language is not listed?

  1. Load the dynamic library through your language's native interop mechanism (for example, a foreign function interface).
  2. Or use process invocation instead, which works from any language that can start a process.

Do bindings change the results?

No. Bindings are thin layers over one Rust core. Conversion and preview behave the same regardless of which language calls them: the same 42 conversion pairs, the same 32 preview extensions, on all 6 operating systems.

Bindings versus process invocation

Bindings (dynamic library) Process invocation
Languages Rust, Go, Java, C++, Python, and more Any
Call overhead In-process Process boundary
Isolation Shared process Separate process

Frequently asked questions

Do I need all five bindings?

No. Use only the binding for the language your application is written in.

Are the bindings available on mobile?

The dynamic library runs on Android, iOS, and HarmonyOS as well as the desktop and server platforms; use the binding that matches your app's language.

Does using a binding require a network connection?

No. OfficeAPI is fully offline regardless of the calling language.

References

Ready to integrate

Bring the engine into your product.

Compare integration paths