feat: add DuckDB as default database backend with SQLite fallback#298
Open
nishikawaakira wants to merge 5 commits intomainfrom
Open
feat: add DuckDB as default database backend with SQLite fallback#298nishikawaakira wants to merge 5 commits intomainfrom
nishikawaakira wants to merge 5 commits intomainfrom
Conversation
Add DuckDB as the default database backend for html-report and html-server commands, with --sqlite flag to use SQLite as a fallback. DuckDB provides 4-24x faster analytical queries and ~7x smaller file sizes. - Add dbAdapter.nim with direct C FFI bindings to DuckDB - Add --sqlite flag and --dboutput parameter to CLI - Migrate all controllers and report generators to use dbAdapter - Handle SQL dialect differences (GROUP BY strictness, date functions, DDL) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fukusuket
reviewed
Feb 23, 2026
Collaborator
fukusuket
left a comment
There was a problem hiding this comment.
@nishikawaakira
Great idea to use DuckDB for speeding things up! Just one thing to confirm: DuckDB is required for both building and running takajo. Is this the intended behavior?
Building(without duckdb):
Running(without duckdb):
./takajo html-server -t ../hayabusa-3.8.0-mac-aarch64/timeline.jsonl
dyld[19627]: Library not loaded: /opt/homebrew/opt/duckdb/lib/libduckdb.dylib
Referenced from: <EB979A90-94F3-3B0F-93B2-83D517E384F7> /Users/fukusuke/YamatoSecurity/takajo-2.15.1-mac-aarch64/takajo
Reason: tried: '/opt/homebrew/opt/duckdb/lib/libduckdb.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/duckdb/lib/libduckdb.dylib' (no such file), '/opt/homebrew/opt/duckdb/lib/libduckdb.dylib' (no such file)
zsh: abort ./takajo html-server -t ../hayabusa-3.8.0-mac-aarch64/timeline.jsonl
I’ve confirmed that running brew install duckdb on macOS resolves both errors.
Update both English and Japanese READMEs to document DuckDB as the default database backend for html-report/html-server commands, including installation instructions for macOS/Windows/Linux and the --sqlite fallback option.
Collaborator
Author
|
@fukusuket I've updated both READMEs (ef4fcb3) with DuckDB installation instructions for macOS/Windows/Linux and documentation for the --sqlite option. |
- Make dbAdapter.nim include/library paths OS-specific - Add DuckDB installation steps to nim.yml and release.yml workflows
Collaborator
|
@nishikawaakira Thank you for updating the README! LGTM!!🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add DuckDB as the default database backend for html-report and html-server commands, with --sqlite flag to use SQLite as a fallback. DuckDB provides 4-24x faster analytical queries and ~7x smaller file sizes.