DLLM
A minimal, clean D language interface for running LLM inference using importC around llama.cpp.
Install / Use
/learn @DannyArends/DLLMREADME
DLLM - D Language 🤖 on 🦙.cpp
A minimal, clean D language agent built directly on llama.cpp via importC. No Python, no bindings, no overhead. Runs a three-model pipeline (agent, summary, embed) with full CUDA offloading, multimodal vision via mtmd, RAG, KV-cache condensation, thinking budget, and an extensible tool system (auto-registered via user-defined attribute @Tool("Description") on functions). Tools included cover: file I/O, web search, date & time, text encoding, Docker sandboxed code execution, and audio playback.
Build with 🛠️
Compilation guide for dependencies are found in deps/README.md
- D Compiler: Use either DMD, LDC, or GDC to compile the agent.
- llama.cpp: Bundled with llama.cpp
- Cuda Toolkit: Built with CUDA for GPU acceleration support.
- SearxNG: SearxNG is used to provide unlimited web searching by the webSearch() tool.
- Docker: Docker provides a code execution sandbox used by the runCode() tool.
Models 🧠
Tested with the following HuggingFace models:
- Agent: Qwen3.5-4B & mmproj-F16 (vision).
- Summary: Qwen2.5-0.5b instruct.
- Embed: Nomic embed text v1.5.
Model paths are configured in src/main.d and with the above model setup require 8GB VRAM.
Run ⚙️
Execute with prompt to OneShot:
dub -- "What is your name?"
dub -- "Download the image at https://picsum.photos/400, load it, and write a poem about it"
dub -- "What date is it today ? and which day of the week was 2 days ago ?"
dub -- "Generate an 8-second audio file of a 440hz sine wave that fades out, then play it"
dub -- "Generate a spoken 16-bit PCM WAV of 'Hello World' and play it"
dub -- "Ingest the file README.md into RAG, tell me what DLLM is in one sentence"
dub -- "Read the file dub.json, and summarize in a single line what the file is about."
dub -- "How is the weather in Newcastle upon Tyne (UK) ?"
dub -- "Fetch the Bitcoin price history online, plot it as a chart and save to workspace"
dub -- "Think about then tell me, a story about math, 4 lines of text and be creative!"
Or start an interactive session:
dub
Contributing 🙌
Want to contribute? Great! Contribute to this repo by starring ⭐ or forking 🍴, and feel free to start an issue first to discuss idea's before sending a pull request. You're also welcome to post comments on commits.
License ⚖️
Written by Danny Arends and released as GPLv3
