<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://algeon.dev/blog</id>
    <title>Algeon Blog</title>
    <updated>2026-09-18T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://algeon.dev/blog"/>
    <subtitle>Algeon Blog</subtitle>
    <icon>https://algeon.dev/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[Introducing Algeon]]></title>
        <id>https://algeon.dev/blog/introducing-algeon</id>
        <link href="https://algeon.dev/blog/introducing-algeon"/>
        <updated>2026-09-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Specialized GPU algorithms, composed through SQL.]]></summary>
        <content type="html"><![CDATA[<p>Algeon brings specialized GPU algorithms into composable SQL workflows over
open data. It lets a query prepare relational inputs, run graph or vector work
on the GPU, and keep composing the result as rows instead of handing data to a
separate notebook or export pipeline.</p>
<p>Apache DataFusion is the first integration.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-algeon">Why Algeon<a href="https://algeon.dev/blog/introducing-algeon#why-algeon" class="hash-link" aria-label="Direct link to Why Algeon" title="Direct link to Why Algeon" translate="no">​</a></h2>
<p>GPU libraries already provide strong implementations of relational, graph, and
vector algorithms. Query engines already provide SQL, catalogs, projection and
predicate pushdown, and open table formats. The costly part is often the gap
between them: copying selected data into a one-off GPU job, materializing its
output, and wiring the result back into the original workflow.</p>
<p>Algeon treats specialized computation as a query operation with explicit input,
output, resource, error, and observation contracts. A graph algorithm can
consume a relation prepared by SQL and return a relation that the same query can
join, filter, aggregate, or return to the caller.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="algeon-for-datafusion">Algeon for DataFusion<a href="https://algeon.dev/blog/introducing-algeon#algeon-for-datafusion" class="hash-link" aria-label="Direct link to Algeon for DataFusion" title="Direct link to Algeon for DataFusion" translate="no">​</a></h2>
<p>The <code>algeon-datafusion</code> adapter works from DataFusion physical plans. Supported
relational candidates lower to a native cuDF engine. Candidates that are not
selected retain their executable DataFusion implementation, and callers can
inspect structured planning evidence before execution.</p>
<p>The same session exposes cuGraph and cuVS operations through SQL table
functions. Native attempts share one admission path, one per-device ledger, and
one allocator-enforced memory cap. Parquet and Iceberg sources can feed the
workflow without introducing an Algeon-specific storage format.</p>
<p>The project is experimental. Its supported operators, data types, source
contracts, and operational limits are documented rather than implied by the
presence of a GPU kernel. Start with the <a class="" href="https://algeon.dev/integration">integration overview</a>
and <a class="" href="https://algeon.dev/guides/gpu-function-discovery">GPU function catalog</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-it-goes-next">Where it goes next<a href="https://algeon.dev/blog/introducing-algeon#where-it-goes-next" class="hash-link" aria-label="Direct link to Where it goes next" title="Direct link to Where it goes next" translate="no">​</a></h2>
<p>Algeon's planning, runtime, and execution crates do not depend on DataFusion.
That boundary is intended to support additional adapters after the first
integration has real users and a stable portable contract. DuckDB is the next
narrow direction under consideration; Spark remains a longer-term direction.
Neither is supported today.</p>
<p>The immediate work is simpler: release the DataFusion integration, make one
graph workflow useful end to end, and learn from how people operate it.</p>]]></content>
        <author>
            <name>Morris</name>
            <uri>https://github.com/morristai</uri>
        </author>
        <category label="announcement" term="announcement"/>
    </entry>
</feed>