Skip to main content

CocoIndex Changelog 2025-04-30

ยท 4 min read

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)

Knowledge Graph Support in CocoIndex

By declaring the mapping rules, CocoIndex will map data from collectors to graph nodes and relationships.

Getting startedโ€‹

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.

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 Colorful CLI output for better readability

  • Support Gemini, and Anthropic in Data Flow #360, #395

@FranFigueroaโ€‹

  • Add unit tests for SplitRecursively function in #348

@lemorageโ€‹

  • Beautify show cli command with colorful structured output - Super Sleek! #404 Beautify show cli command with colorful structured output

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.