Official SDKs, tools, and integrations for Loka — all in one monorepo.
Official client libraries for connecting to Loka from any language. Each SDK provides:
| Language | Package Name | Registry | Install | Status |
|---|---|---|---|---|
| Python | loka |
PyPI | pip install loka |
Published |
| TypeScript / JavaScript | loka |
npm | npm install loka |
Published |
| Rust | loka |
crates.io | cargo add loka |
Planned |
| Java | dev.loka:loka-java |
Maven Central | Maven/Gradle dependency | Planned |
| C# / .NET | Loka.Client |
NuGet | dotnet add package Loka.Client |
Planned |
| Go | loka |
pkg.go.dev | go get github.com/EmmaLeonhart/Loka/sdks/go |
Planned |
All SDKs follow the same pattern regardless of language:
from loka import LokaClient
db = LokaClient("http://localhost:3030")
# Insert triples
db.insert_triples("""
:Alice :knows :Bob .
:Bob :knows :Carol .
""")
# Declare vector predicate
db.declare_vector("ex:embedding", 1024)
# Insert vector
db.insert_vector("ex:embedding",
"ex:Alice", [0.1, 0.2, ...])
# Query with VECTOR_SIMILAR
results = db.sparql("""
SELECT ?person WHERE {
VECTOR_SIMILAR(?person ex:embedding
"0.1 0.2 ..."^^loka:f32vec, 0.8)
}
""")
import { LokaClient } from "loka";
const db = new LokaClient('http://localhost:3030');
// Insert triples
await db.insertTriples(`
:Alice :knows :Bob .
:Bob :knows :Carol .
`);
// Declare vector predicate
await db.declareVector('ex:embedding', 1024);
// Insert vector
await db.insertVector('ex:embedding',
'ex:Alice', [0.1, 0.2, ...]);
// Query with VECTOR_SIMILAR
const results = await db.sparql(`
SELECT ?person WHERE {
VECTOR_SIMILAR(?person ex:embedding
"0.1 0.2 ..."^^loka:f32vec, 0.8)
}
`);
| Extension | Description | Status |
|---|---|---|
| Protégé Plugin | Connect the Protégé OWL ontology editor to Loka. Author ontologies visually, query the live database, browse inferred triples. Since Loka supports OWL reasoning (planned), Protégé becomes a natural companion for schema design. | Planned |
| Docker Image | Official Docker image on Docker Hub. docker run loka/loka --port 3030 for instant deployment. |
Complete |
| Jupyter Integration | Python magics for SPARQL queries in Jupyter notebooks. %%sparql cell magic, inline result rendering, vector visualization. |
Complete |
| LangChain / LlamaIndex | Loka as a vector store + knowledge graph for RAG pipelines. Combined retrieval: semantic similarity + graph context in one call. | Complete |
All SDKs and extensions are developed in a single monorepo with shared CI:
Loka/
sdks/
python/ # loka (PyPI)
typescript/ # loka (npm)
rust/ # loka (crates.io)
java/ # dev.loka:loka-java (Maven Central)
dotnet/ # Loka.Client (NuGet)
go/ # github.com/EmmaLeonhart/Loka/sdks/go
extensions/
protege/ # Protégé plugin (Java)
jupyter/ # Jupyter magics (Python)
langchain/ # LangChain integration (Python)
docker/ # Dockerfile + Docker Hub CI
.github/
workflows/
publish-pypi.yml
publish-npm.yml
publish-crates.yml
publish-nuget.yml
publish-maven.yml
publish-docker.yml
GitHub Actions automatically builds and publishes each SDK when a release tag is pushed. All SDKs share the same version number and are released together.
SDKs are thin HTTP clients — they wrap the REST API (/sparql, /triples, /vectors). Adding a new language SDK is straightforward:
All SDKs test against the same Loka binary, ensuring consistency across languages.