{"id":23666578,"url":"https://github.com/redsift/rkdb","last_synced_at":"2025-09-07T06:04:28.373Z","repository":{"id":57660996,"uuid":"145851943","full_name":"redsift/rkdb","owner":"redsift","description":"kdb+ Rust embedding and IPC","archived":false,"fork":false,"pushed_at":"2019-12-20T18:11:09.000Z","size":33,"stargazers_count":17,"open_issues_count":4,"forks_count":6,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-09-01T19:40:56.919Z","etag":null,"topics":["database","ffi-bindings","kdb"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/redsift.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-23T12:41:51.000Z","updated_at":"2025-07-26T23:26:17.000Z","dependencies_parsed_at":"2022-09-06T23:21:34.715Z","dependency_job_id":null,"html_url":"https://github.com/redsift/rkdb","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/redsift/rkdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redsift%2Frkdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redsift%2Frkdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redsift%2Frkdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redsift%2Frkdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redsift","download_url":"https://codeload.github.com/redsift/rkdb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redsift%2Frkdb/sbom","scorecard":{"id":768099,"data":{"date":"2025-08-11","repo":{"name":"github.com/redsift/rkdb","commit":"7125f3d9cf44b8202c541ab5f63404f4888456ac"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Code-Review","score":3,"reason":"Found 6/18 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 13 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T01:26:16.065Z","repository_id":57660996,"created_at":"2025-08-23T01:26:16.065Z","updated_at":"2025-08-23T01:26:16.065Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274001216,"owners_count":25205213,"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","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["database","ffi-bindings","kdb"],"created_at":"2024-12-29T07:33:10.468Z","updated_at":"2025-09-07T06:04:28.348Z","avatar_url":"https://github.com/redsift.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rkdb\n\nkdb+ bindings for Rust. Originally forked from and substantially based on the Krust cargo package by [adwhit](https://github.com/adwhit/krust) via [robsmith11](https://github.com/robsmith11/krust).\n\n[![Circle CI](https://img.shields.io/circleci/project/redsift/rkdb.svg?logo=circleci)](https://circleci.com/gh/redsift/rkdb)\n[![Latest version](https://img.shields.io/crates/v/rkdb.svg)](https://crates.io/crates/rkdb)\n![License](https://img.shields.io/crates/l/rkdb.svg)\n\nThese bindings enable Rust to be used as inside Q to add additional functionality.\nMore generally they also enable Rust to communicate with kdb+ in a memory-safe way.\n\nIn addition to Krust, this variant features:\n- Support for macOS\n- Support for the GUID type and sd0x function call\n- Fix for kerror strings when exported from Rust to Q\n- Fixes for embedding\n- Performance features\n- Dynamic export for symbols to be weak linked\n- Helpers for querying attributes on types\n\nThis variant incorporates [robsmith11](https://github.com/robsmith11/krust) updates for the current rust nightly.\n\nFor an example of how to embed Rust code within Q, see `demos/embed`.\nFor an example of how to perform IPC between Rust and Q, see `demos/ipc`.\n\n## Building for Embedding\n\nWhen built for embedding, the symbols are provided by the hosting Q process and the library must **not** include the duplicated functions. This requires weak linking which currently needs to be manually archived on macOS by specifying all the missing symbols that should be ignored at link time. This symbols are generated at build time as the constant `rkdb::SYMBOLS` and is currently used by setting `.cargo/config` in the library target to:\n\n```\n[target.'cfg(target_os=\"macos\")']\nrustflags = [\"-Clink-args=-Wl,-U,_ktn -Wl,-U,_knk -Wl,-U,_ku -Wl,-U,_ka -Wl,-U,_kb -Wl,-U,_kg -Wl,-U,_kh -Wl,-U,_ki -Wl,-U,_kj -Wl,-U,_ke -Wl,-U,_kf -Wl,-U,_kc -Wl,-U,_ks -Wl,-U,_kd -Wl,-U,_kz -Wl,-U,_kt -Wl,-U,_ktj -Wl,-U,_kp -Wl,-U,_kpn -Wl,-U,_xT -Wl,-U,_xD -Wl,-U,_ktd -Wl,-U,_ss -Wl,-U,_sn -Wl,-U,_ymd -Wl,-U,_dj -Wl,-U,_setm -Wl,-U,_r1 -Wl,-U,_r0 -Wl,-U,_m9 -Wl,-U,_sd1 -Wl,-U,_sd0 -Wl,-U,_sd0x -Wl,-U,_k -Wl,-U,_dl -Wl,-U,_ja -Wl,-U,_js -Wl,-U,_jk -Wl,-U,_jv -Wl,-U,_krr -Wl,-U,_orr -Wl,-U,_dot -Wl,-U,_okx -Wl,-U,_b9 -Wl,-U,_d9\"]\n\n```\n### Example\n\nReference [kdb-rs-hash](https://github.com/redsift/kdb-rs-hash) for an example of embedding.\n\n## Building for IPC\n\nTo use this library for IPC, you will first need to\ncompile a static library from the kx-supplied object file `c.o` using `ar`. \nThe static library should be placed in `src/c/libkdb.a`.\n\n```\nar rcs libkdb.a c.o\nmv libkdb.so src/c\n```\n\n`c.o` can be found [here](http://code.kx.com/wsvn/code).\n\n## Compatibility\n\n- 64 bit i.e. commercial version of Q \u003e= 3.6.\n- macOS (with XCode \u003e=  9.4.1) and Linux.\n- rustc \u003e= 1.31.0\n\n## License\n\nBased substantially on [adwhit](https://github.com/adwhit/krust) and licensed under the same MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredsift%2Frkdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredsift%2Frkdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredsift%2Frkdb/lists"}