Skip to content

Conversation

@dylanbstorey
Copy link
Contributor

Rust bindings now compile the C extension from source via build.rs, enabling cargo add graphqlite to work without manual extension builds.

  • Add build.rs to compile C sources with cc crate
  • Add bundled_init.c for direct FFI initialization (no extension API)
  • Commit pre-generated Flex/Bison outputs to src/generated/
  • Simplify GraphManager to use standard Graph::open()
  • Remove unnecessary cfg gates between bundled/non-bundled modes
  • Bump version to 0.2.1

Closes GQLITE-T-0091

@dylanbstorey dylanbstorey force-pushed the feat/rust-bundled-extension branch 6 times, most recently from 9957e72 to 02dd53d Compare January 9, 2026 01:09
Switch from compiling C extension at build time to bundling pre-built
binaries that are loaded at runtime via SQLite's load_extension().

This avoids MSVC compatibility issues on Windows and simplifies the
build process - no C compiler needed for Rust users.

- Add platform.rs for binary extraction and loading
- Embed platform-specific binaries via include_bytes!()
- Extract to temp directory on first use, cache path
- Update CI to copy built extensions before Rust tests
@dylanbstorey dylanbstorey force-pushed the feat/rust-bundled-extension branch from 02dd53d to 74471a7 Compare January 9, 2026 01:11
@dylanbstorey dylanbstorey merged commit 23ef815 into main Jan 9, 2026
15 checks passed
@dylanbstorey dylanbstorey deleted the feat/rust-bundled-extension branch January 9, 2026 01:17
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.

2 participants