CocoIndex Changelog 2025-04-30
In the past 2 weeks, we've added support for Knowledge Graphs, Qdrant, Supabase, KTable/LTable, and more LLM providers, along with tons of assorted core/performance improvements - full changelog.
Knowledge Graphsโ
CocoIndex makes it easy to build and maintain knowledge graphs with continuous updates. The knowledge graph is automatically updated when the source data changes with incremental processing, ensuring that your graph always reflects the latest information.
Users can follow the CocoIndex data flow to collect nodes and relationships. Data from collectors is mapped to graph elements in various types:
- Rows from collectors โ Nodes in the graph
- Rows from collectors โ Relationships in the graph (including source and target nodes of the relationship)
By declaring the mapping rules, CocoIndex will map data from collectors to graph nodes and relationships.
Getting startedโ
- Documentation: Property Graph Targets
- Step-by-step example: Knowledge Graphs for docs
Supporting Qdrantโ
CocoIndex is officially supporting Qdrant ๐! Qdrant is the leading open-source vector database designed to handle high-dimensional vectors for performance and massive-scale AI applications. This integration combines high-performance Rust ๐ฆ stack with real-time ETL to vector store.
- Documentation: Qdrant as storage target
- Example: Qdrant for docs
We are excited to see this integration!
Supporting Supabaseโ
CocoIndex now supports Supabase as a storage target with simple configuration. Supabase is a modern database platform that combines the best of PostgreSQL with the power of AI. If you don't want to self host any database for the data pipeline, Supabase is a great option. Follow the Database connection spec to get started.
Type system updatesโ
KTableโ
KTable is a Table type whose first column serves as the key. The row order of a KTable is not preserved. Type of the first column (key column) must be a key type.
In Python, a KTable type is represented by dict[K, V]
. The V
should be a dataclass, representing the value fields of each row.
For example,
@dataclass
class Person:
first_name: str
last_name
dob: datetime.date
You can use dict[str, Person]
to represent a KTable, with 4 columns: the key field (Str), first_name
(Str), last_name
(Str), dob
(Date).
LTableโ
LTable is a Table type whose row order is preserved. LTable has no key column.
In Python, a LTable type is represented by list[R]
, where R
is a dataclass representing a row.
For example, you can use list[Person]
to represent a LTable with 3 columns: first_name
(Str), last_name
(Str), dob
(Date).
Learn more about the type system in the documentation.
Supporting more LLM providers in the data flowโ
CocoIndex now supports Gemini and Anthropic in the data flow. Thanks to @par4m for the contributions!
You could easily switch between the providers by changing the configuration, try it out for some of our existing examples - Text Embedding from PDFs, LLM structured extraction.
Thanks to the Community ๐ค๐!โ
Welcome new contributors to the CocoIndex community! We are so excited to have you!
@Anush008 from Qdrantโ
- Submitted the PR to support Qdrant storage in #205.
@par4mโ
-
Add unit tests for Python to Engine format conversion in #315
-
Colors to CLI Status for better readability - Super neat! #329, #372
@FranFigueroaโ
- Add unit tests for SplitRecursively function in #348
@lemorageโ
- Beautify show cli command with colorful structured output - Super Sleek! #404
Give it a try by running cocoindex show
!
Full Changelogโ
Review the detailed changelog here.
We are constantly improving CocoIndex, more features are coming soon! Stay tuned and follow us by starring our GitHub repo.