View Source Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.2.0] - 2026-07-12
Added
- Fixed-size ARRAY property type
{:array, type, size}(e.g.FLOAT[1536]), required for vector index columns - FTS results are now ordered by BM25 score (descending) and vector search results by distance (ascending)
Changed
- Upgraded the bundled LadybugDB engine (
lbugcrate) from 0.15 to 0.18.1 - Tables created without an explicit primary key now get an auto-incrementing
ladybug_id SERIALprimary key instead ofladybug_id INT64, so inserts no longer need to supply it - FTS and LLM functions validate their options before attempting to load the extension, so invalid input returns a clear error even when the extension is not installed
Fixed
- Extensions (fts, vector, llm, json) failed to load with "symbol not found"
errors: the NIF library now exports the engine symbols extensions resolve at
runtime, and the published package includes the
build.rsthat configures this Extensions.loaded?/2always returnedfalsedue to a wrong result column name and case-sensitive comparison- FTS and vector index CALL statements used positional arguments for optional parameters, which the engine rejects; they now use named arguments
- Vector index default
puparameter was500; the engine expects a 0.0-1.0 DOUBLE (now0.05) - JSON-typed query results (json extension) crashed the NIF; they are now returned as serialized JSON strings
Known Limitations
- The
httpfsextension crashes the VM on load: the prebuilt extension binary is ABI-incompatible with the engine compiled from thelbugcrate (upstream issue)
0.1.0 - 2025-01-01
Added
- Initial release of LadybugEx
- Complete Elixir NIF bindings for LadybugDB embedded property graph database
- Full support for Cypher query language
- Database management (in-memory and persistent)
- Connection management with multiple concurrent connections
- Graph operations (nodes, relationships, properties)
- Schema management (DDL operations)
- Transaction support
- Prepared statements
- Support for array types (FLOAT[], DOUBLE[])
- Comprehensive test suite with 100% pass rate (168 tests)
- Full documentation with ExDoc
- Examples and usage guide in README
Features
- Create and manage both in-memory and persistent databases
- Execute Cypher queries for graph operations
- Create, read, update, and delete nodes and relationships
- Schema management for node and relationship tables
- Transaction support with rollback capabilities
- Prepared statements for improved performance
- Thread-safe concurrent operations
- Extensions can be installed from LadybugDB's extension server
Known Limitations
- LadybugDB does not support composite primary keys (only first key is used)
- Cannot add properties that don't exist in the schema
- No native shortestPath function (implemented via iterative approach)
- Reserved words require escaping with backticks
- Extensions require downloading from http://extension.ladybugdb.com/