{"id":14219134,"url":"https://github.com/rodabt/vduckdb","last_synced_at":"2025-08-09T11:31:41.380Z","repository":{"id":181471087,"uuid":"656410559","full_name":"rodabt/vduckdb","owner":"rodabt","description":"A blazing-fast DuckDB wrapper built with the V language, making it easier to leverage its power in your projects. ","archived":false,"fork":false,"pushed_at":"2024-10-29T23:52:45.000Z","size":253868,"stargazers_count":30,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-08T21:36:40.040Z","etag":null,"topics":["data","duckdb","vlang","wrapper-library"],"latest_commit_sha":null,"homepage":"","language":"V","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rodabt.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-20T22:49:30.000Z","updated_at":"2024-11-18T09:20:34.000Z","dependencies_parsed_at":"2024-07-11T16:08:10.919Z","dependency_job_id":null,"html_url":"https://github.com/rodabt/vduckdb","commit_stats":null,"previous_names":["rodabt/vduckdb"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodabt%2Fvduckdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodabt%2Fvduckdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodabt%2Fvduckdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodabt%2Fvduckdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rodabt","download_url":"https://codeload.github.com/rodabt/vduckdb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229272776,"owners_count":18047402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data","duckdb","vlang","wrapper-library"],"created_at":"2024-08-19T15:01:10.249Z","updated_at":"2025-08-09T11:31:41.342Z","avatar_url":"https://github.com/rodabt.png","language":"V","readme":"# vduckdb 0.6.9\n\nA V wrapper for duckvdb. This library is now in beta and should be safe to use in most scenarios. Should work on Linux, Windows and MacOS with V version 0.4.x. It requires the library version (`libduckdb*`) of DuckDB (see `https://github.com/duckdb/duckdb/releases`)\n\n## DuckDB library installation\n\n- Download the latest DuckDB (`libduckdb*.zip`) for your OS from `https://github.com/duckdb/duckdb/releases` and unzip the archive\n- Pick the `.so` (Linux), `.dll` (Windows), or `.dylib` (OS X) file and rename it to `libduckdb.so`, `libduckdb.dll`, or `libduckdb.dylib` accordingly\n- Copy or move the file to the root directory where your V code is, or to a subdirectory called `thirdparty` or set a global variable called `LIBDUCKDB_DIR`\n\n## vduckdb installation\n\n```bash\nv install https://github.com/rodabt/vduckdb\n```\n\n## Main usage\n\n```v\n// example.v\nimport vduckdb\n\nfn main() {\n\n    mut vdb := vduckdb.DuckDB{}\n    println('vduckdb version: ${vduckdb.version()}')\n    println('duckdb version: ${vduckdb.duckdb_library_version()}')\n\n    _ := vdb.open(':memory:')!\n\n    db_file := 'https://gist.githubusercontent.com/Sharanya1307/631c9f66e5709dbace46b5ed6672381e/raw/4329c1980eac3a71b881b18757a5bfabd2a95a1e/people-100.csv'\n\n    mut q := \"select * from '${db_file}' limit 10\"\n    println('\\nQuery: ${q}')\n\n    _ := vdb.query(q)!\n\n    println('\\nColumns and types: ${vdb.columns}')\n\n    println('\\n Results as table to terminal:')\n    println(vdb.print_table(max_rows: 10, mode: 'box'))  // other options are: ascii and md\n\n    q = 'select \"First Name\", \"Sex\" from \\'${db_file}\\' limit 5'\n    println('\\nData from \\'${q}\\' as []map[string]string:')\n    _ := vdb.query(q)!\n    out := vdb.get_array_as_string()\n    println(out)\n\n    first_row := vdb.get_first_row()\n    println(first_row)\n\n    println('\\nManaging errors...')\n    q = \"invalid query...\"\n    vdb.query(q) or {\n      eprintln(err.msg())\n    }\n    vdb.close()\n}\n```\n\nFor example in Linux if `libduckdb.so` is in the same directory of your code or is in the `thirdparty` sub directory, then you can run:\n\n```bash\n$ v run example.v\n```\n\nOtherwise you have to specify the directory with the `LIBDUCKDB_DIR` enviromental variable like this:\n\n```bash\nLIBDUCKDB_DIR=/home/user/libdir v run .\n```\n\n## Documentation\n\nRun `v doc vduckdb` or `make docs` to generate static HTML documentation in `docs` folder\n\n## Roadmap\n\n- [x] Define as module\n- [x] Added tests\n- [x] Write base documentation\n- [x] Download and install required dependencies\n- [x] Map all relevant definitions from `duckvdb.h` header file to their V counterparts\n- [x] Create convenience functions and data wrappers\n- [ ] Add website and tutorials\n- [ ] Build integration with V ORM\n\n## Contributing\n\nPull requests are welcome\n","funding_links":[],"categories":["Libraries"],"sub_categories":["Database clients"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodabt%2Fvduckdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodabt%2Fvduckdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodabt%2Fvduckdb/lists"}