Neutron for Julia provides a typed Nucleus client and integrations with the Julia scientific-computing ecosystem — DifferentialEquations.jl, Flux.jl, CUDA.jl, and Makie.jl. It connects over the PostgreSQL wire protocol via LibPQ.jl.

Quick Start

using NeutronJulia

# Connect to Nucleus
client = NeutronJulia.connect("postgres://localhost:5432/mydb")

# SQL queries
rows = query(sql(client), "SELECT * FROM users WHERE active = true")

# Key-Value
set!(kv(client), "session:abc", "user_42")
val = get(kv(client), "session:abc")

# Vector search
results = search(vector(client), "embeddings", [0.1, 0.2, 0.3]; k=10, metric=Cosine)

close(client)

Transport: LibPQ.jl (PostgreSQL wire protocol). Min Julia: 1.9.

Connection Pool

pool = ConnectionPool("postgres://localhost:5432/mydb", size=4)

with_pool(pool) do client
    rows = query(sql(client), "SELECT * FROM users")
    set!(kv(client), "cache:result", JSON3.write(rows))
end

# Pool stats
idle_count(pool)  # Available connections

close(pool)

Project Structure

julia/
├── Project.toml              # Package manifest
├── src/
│   ├── NeutronJulia.jl       # Main module (exports all 14 models)
│   ├── client.jl             # Connection management
│   ├── pool.jl               # Connection pooling
│   └── model/                # Data model accessors
│       ├── sql.jl
│       ├── kv.jl
│       ├── vector.jl
│       └── ...               # 14 model files
├── ext/                      # Ecosystem extensions
│   ├── NeutronJuliaDataFramesExt.jl
│   ├── NeutronJuliaDiffEqExt.jl
│   ├── NeutronJuliaMTKExt.jl
│   ├── NeutronJuliaGraphsExt.jl
│   ├── NeutronJuliaFluxExt.jl
│   ├── NeutronJuliaCUDAExt.jl
│   └── NeutronJuliaMakieExt.jl
└── test/