{"id":13702659,"url":"https://github.com/nlf/riakpbc","last_synced_at":"2026-03-27T02:42:14.038Z","repository":{"id":5172346,"uuid":"6345702","full_name":"nlf/riakpbc","owner":"nlf","description":"really basic, really simple riak protocol buffer client library for node.js","archived":false,"fork":false,"pushed_at":"2014-12-09T18:54:41.000Z","size":1303,"stargazers_count":35,"open_issues_count":7,"forks_count":26,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-08-24T17:31:13.377Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"doctrine/migrations","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nlf.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":"2012-10-23T02:37:15.000Z","updated_at":"2024-07-19T02:52:28.000Z","dependencies_parsed_at":"2022-07-06T11:21:58.432Z","dependency_job_id":null,"html_url":"https://github.com/nlf/riakpbc","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/nlf/riakpbc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlf%2Friakpbc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlf%2Friakpbc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlf%2Friakpbc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlf%2Friakpbc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nlf","download_url":"https://codeload.github.com/nlf/riakpbc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlf%2Friakpbc/sbom","scorecard":{"id":690596,"data":{"date":"2025-08-11","repo":{"name":"github.com/nlf/riakpbc","commit":"8d79e502781d6ac56b95d0bafcb996332a283c74"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"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":"Code-Review","score":1,"reason":"Found 5/27 approved changesets -- score normalized to 1","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":"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":"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":"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":"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":"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":"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 8 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-22T02:13:14.127Z","repository_id":5172346,"created_at":"2025-08-22T02:13:14.127Z","updated_at":"2025-08-22T02:13:14.127Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31011498,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T02:33:22.146Z","status":"ssl_error","status_checked_at":"2026-03-27T02:33:21.763Z","response_time":164,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-08-02T21:00:40.398Z","updated_at":"2026-03-27T02:42:14.018Z","avatar_url":"https://github.com/nlf.png","language":"JavaScript","funding_links":[],"categories":["Stores"],"sub_categories":["[`riakdown`][riakdown]"],"readme":"# RiakPBC [![build status](http://img.shields.io/travis/nlf/riakpbc/master.svg?style=flat-square)](http://travis-ci.org/nlf/riakpbc)[![Code Climate](http://img.shields.io/codeclimate/github/nlf/riakpbc.svg?style=flat-square)](https://codeclimate.com/github/nlf/riakpbc)[![Gitter](http://img.shields.io/badge/gitter-join%20chat-green.svg?style=flat-square)](https://gitter.im/nlf/riakpbc?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nRiakPBC is a low-level [riak 2.0](http://basho.com/riak) [protocol buffer](https://developers.google.com/protocol-buffers/docs/overview) client for [node.js](http://nodejs.org/).\n\n# Contents\n- [Installation](#installation)\n- [Client](#client)\n  - [Options](#options)\n- [Usage](#usage)\n- [Data Conversions](#data-conversions)\n  - [bytes](#bytes)\n  - [uint32/float](#uint32float)\n  - [sint64](#sint64)\n  - [enums](#enums)\n  - [Embedded Messages](#embedded-messages)\n- [License](#license)\n\n\n## Installation\n\n```bash\nnpm install --save riakpbc\n```\n\n## Client\n\n```javascript\nvar RiakPBC = require('riakpbc');\nvar client = RiakPBC.createClient(/* options */);\n```\n\n### Options\n\nThe `options` object accepts the following parameters:\n\n- `connectTimeout`: The timeout (in milliseconds) for creating a new connection. (Default: `1000`)\n- `idleTimeout`: The amount of time (in milliseconds) that a node can be idle in the connection pool before it is released. (Default: `30000`)\n- `maxLifetime`: The amount of time (in milliseconds) that a node is used in the connection pool before it is released, regardless of activity. (Default: `Infinity`)\n- `minConnections`: The minimum number of connections to keep active in the connection pool. (Default: `0`)\n- `maxConnections`: The maximum number of connections that may be active in the connection pool at any given time. (Default: `10`)\n- `parseValues`: If set to `false`, values will be returned as buffers rather than strings or parsed JSON. (Default: `true`)\n- `nodes`: An array of `{ host: 'string', port: number }` objects specifying all of the riak nodes to use. These are then load balanced via round-robin.\n- `host`: If only connecting to a single node, you may specify the `host` property directly rather than passing an array of `nodes`. (Default: `'127.0.0.1'`)\n- `port`: Again, if only connecting to a single node, you may specify the `port` directly. (Default: `8087`)\n- `auth`: User and password, specified as a `{ user: 'string', password: 'string' }` object, to use for authentication if using [riak security](http://docs.basho.com/riak/latest/ops/running/authz/).\n\n## Usage\n\nFor a full reference of all available methods, see the [API Reference](doc/API.md).\n\nMethods that accept input have the signature `(params, callback)`, where `params` is an object containing the message to be sent to riak.\n\nMethods that do not accept input have the signature `(callback)`.\n\nCallbacks have the signature `(err, response)`.\n\nIf an error occurs, the `err` object will be a standard `Error` object wrapping the riak supplied [RpbErrorResp](doc/Messages.md#rpberrorresp) message.\n\nIf the call was successful, `response` will be the riak supplied message. Many calls do not return a value, or only return a value when certain flags are set, in these cases the `response` will be an empty object `{}`.\n\n```javascript\nclient.ping(function (err, response) {\n  if (err) {\n    return console.error('Failed to ping:', err);\n  }\n\n  console.log(response); // {}\n});\n```\n\nNote that callbacks are always optional, and if not supplied the call will return a stream instead.\n\nThese streams will emit only an `error` event if an error occurs. If the call is successful, the stream will emit one or more `data` events and an `end` event.\n```javascript\nvar keys = client.getKeys({ bucket: 'test' });\n\nkeys.on('error', function (err) {\n  console.error('An error occurred:', err);\n});\n\nkeys.on('data', function (response) {\n  console.log('Got some keys:', response.keys); // this could fire multiple times\n});\n\nkeys.on('end', function () {\n  console.log('Finished listing keys');\n});\n```\n\n## Data Conversions\n\nRiakPBC attempts to stay as accurate as possible when converting data to and from protocol buffer encoding.\n\nAll available messages are documented in the [Messages reference](doc/Messages.md).\n\nThe primary data types that riak uses are handled as follows:\n\n### bytes\n\nThe `bytes` type may be supplied as either a `string` or a `Buffer`.\n\nBy default, when translating a response message these fields will be converted to a `string` unless they are the `vclock` or `context` properties. Since these values are intended to be binary only, they are left as a `Buffer`.\n\nIn the case of [RpbContent](doc/Messages.md#rpbcontent) values, RiakPBC will convert the `value` field to a string only if a `content_type` was set, and begins with the string `text` (as in `text/plain` or `text/xml`). In addition, if `content_type` is set to `application/json` RiakPBC will parse the value as JSON automatically.\n\nThis behavior can be overridden and `Buffer` objects returned for all `bytes` fields by setting `{ parseValues: false }` in your client options.\n\n### uint32/float\n\nThese fields will always be treated as a plain javascript number.\n\n### sint64\n\nSince javascript does not properly handle 64 bit numbers, these are a special case.\n\nWhen used as input, you may pass either a number (`42`), a string (`'-98549321293'`), or a [long.js](https://github.com/dcodeIO/Long.js) object.\n\nIn a reply, you will always receive a [long.js](https://github.com/dcodeIO/Long.js) object. These objects allow RiakPBC to properly support real 64 bit number values.\n\n### bool\n\nThese fields will always be treated as a plain javascript boolean (i.e. `true` or `false`).\n\n### enums\n\nSeveral messages accept an enum field. RiakPBC exports these as variables on the main object to simplify input. They are as follows:\n\n- IndexQueryType:\n  - RiakPBC.IndexType.Exact\n  - RiakPBC.IndexType.Range\n- DataType:\n  - RiakPBC.DataType.Counter\n  - RiakPBC.DataType.Set\n  - RiakPBC.DataType.Map\n- MapFieldType:\n  - RiakPBC.FieldType.Counter\n  - RiakPBC.FieldType.Set\n  - RiakPBC.FieldType.Register\n  - RiakPBC.FieldType.Flag\n  - RiakPBC.FieldType.Map\n- FlagOp:\n  - RiakPBC.Flag.Enable\n  - RiakPBC.Flag.Disable\n\nThese variables are all simple numbers, however, so when RiakPBC returns a message containing one of these types you will receive a plain number. I would recommend using the exported variables for comparison purposes to maintain readable code.\n\n### Embedded Messages\n\nAll other types not documented here are an embedded message and are recursively encoded/decoded in the same fashion as the above types.\n\n## License\n\n[The MIT License (MIT)](https://raw.githubusercontent.com/nlf/riakpbc/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlf%2Friakpbc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnlf%2Friakpbc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlf%2Friakpbc/lists"}