Ecosystem Extensions
View as MarkdownNeutron for Julia integrates with the scientific-computing ecosystem through package extensions. Each loads automatically when you import both NeutronJulia and the target package (the Julia weak-dependency pattern) — no extra setup.
DataFrames
using NeutronJulia, DataFrames
rows = query(sql(client), "SELECT * FROM sales")
df = DataFrame(rows) # Automatic conversion
DifferentialEquations
Store ODE/SDE solutions directly in Nucleus TimeSeries:
using NeutronJulia, DifferentialEquations
# Solve a system
prob = ODEProblem(lorenz!, u0, tspan, p)
sol = solve(prob, Tsit5(), saveat=0.01)
# Store solution — each variable becomes a separate series
ts = timeseries(client)
store!(ts, sol, "lorenz:run1"; variable_names=["x", "y", "z"])
# Retrieve later
t, u = load_solution(ts, "lorenz:run1", ["x", "y", "z"])
# t::Vector{Float64} (seconds)
# u::Matrix{Float64} (n_vars x n_points)
ModelingToolkit
Symbolic variable names flow through to TimeSeries storage:
using NeutronJulia, ModelingToolkit
# Variable names from an MTK system are used as series names automatically
Flux (ML)
Generate embeddings with Flux models and store them in Nucleus Vector:
using NeutronJulia, Flux
model = Chain(Dense(768, 384), relu, Dense(384, 128))
embedding = model(input_data)
v = vector(client)
# Store and search embeddings
CUDA
GPU-accelerated vector similarity search:
using NeutronJulia, CUDA
# Vector operations accelerated on NVIDIA GPUs
Makie
Plot TimeSeries data directly:
using NeutronJulia, CairoMakie
ts = timeseries(client)
fig = plot_timeseries!(ts, "cpu_usage", start_ms, end_ms)
save("cpu.png", fig)
Each extension lives in ext/ (NeutronJuliaDataFramesExt.jl, NeutronJuliaDiffEqExt.jl, NeutronJuliaMTKExt.jl, NeutronJuliaGraphsExt.jl, NeutronJuliaFluxExt.jl, NeutronJuliaCUDAExt.jl, NeutronJuliaMakieExt.jl) and requires Julia 1.9+.