{"_id":"@alt-javascript/jsnosqlc-cassandra","_rev":"3-f86432e93e2d00c3534261c2013ba979","name":"@alt-javascript/jsnosqlc-cassandra","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"@alt-javascript/jsnosqlc-cassandra","version":"1.0.0","keywords":["jsnoslqc","nosql","cassandra","apache","driver"],"author":{"name":"Craig Parravicini"},"license":"MIT","_id":"@alt-javascript/jsnosqlc-cassandra@1.0.0","maintainers":[{"name":"craigparra","email":"craigparra@gmail.com"}],"contributors":[{"url":"Anthropic","name":"Claude"}],"homepage":"https://github.com/alt-javascript/jsnosqlc/tree/main/packages/cassandra#readme","bugs":{"url":"https://github.com/alt-javascript/jsnosqlc/issues"},"dist":{"shasum":"db7a641ede8bea38a896d2f7cde94c5d0ea00c3d","tarball":"https://registry.npmjs.org/@alt-javascript/jsnosqlc-cassandra/-/jsnosqlc-cassandra-1.0.0.tgz","fileCount":8,"integrity":"sha512-HjVJO1N3OAgcBW6ryKfSdS7BH6R55t+zfiv97XPDfV1fajiDXnruyX5r1cDl2vS/tBNVUR5iLsYlu4of5xptbg==","signatures":[{"sig":"MEUCIQCjQrJ/oUYM3xk1jdPiSXIO5eIEKR5BnQhzYXPftguAYQIgAwR+khiYilWnGtHvvioBPw6jofMrKVIR4wQJOB+eDws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alt-javascript%2fjsnosqlc-cassandra@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15855},"main":"index.js","type":"module","gitHead":"80cfedbe5f530e7635cfab7c720cbc230731406c","scripts":{"test":"mocha --recursive 'test/**/*.spec.js' --timeout 60000"},"_npmUser":{"name":"craigparra","email":"craigparra@gmail.com"},"repository":{"url":"git+https://github.com/alt-javascript/jsnosqlc.git","type":"git","directory":"packages/cassandra"},"_npmVersion":"10.8.2","description":"JSNOSLQC Apache Cassandra driver via cassandra-driver","directories":{},"_nodeVersion":"20.20.1","dependencies":{"cassandra-driver":"^4.8.0","@alt-javascript/jsnosqlc-core":"*","@alt-javascript/jsnosqlc-memory":"*"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.7","mocha":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/jsnosqlc-cassandra_1.0.0_1774353610835_0.5883692262664724","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alt-javascript/jsnosqlc-cassandra","version":"1.0.1","keywords":["jsnosqlc","nosql","cassandra","apache","driver"],"author":{"name":"Craig Parravicini"},"license":"MIT","_id":"@alt-javascript/jsnosqlc-cassandra@1.0.1","maintainers":[{"name":"craigparra","email":"craigparra@gmail.com"}],"contributors":[{"url":"Anthropic","name":"Claude"}],"homepage":"https://github.com/alt-javascript/jsnosqlc/tree/main/packages/cassandra#readme","bugs":{"url":"https://github.com/alt-javascript/jsnosqlc/issues"},"dist":{"shasum":"48a7e076573a4584a0eb08446dc0fbb105dce076","tarball":"https://registry.npmjs.org/@alt-javascript/jsnosqlc-cassandra/-/jsnosqlc-cassandra-1.0.1.tgz","fileCount":8,"integrity":"sha512-rU3eA9QrzDQSZizr7BwUHNWldWG82zLPCAOUsHtJBSyKHnAS1sjr9LNv5tI+0pvOXzt8qt9R9UEcMtHbxGqpqQ==","signatures":[{"sig":"MEYCIQDKjWb0clXQFzdqI9BvCLshTeoTK30DxQBq25wwFJnXrwIhAOPBZH39PyH5ifVyJ5/q8X3f+2QYh7tVeP9oXDIRLNHE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alt-javascript%2fjsnosqlc-cassandra@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15855},"main":"index.js","type":"module","gitHead":"8aa2fa0b3c0e0ab1bf7252b331fd5f468690fcf1","scripts":{"test":"mocha --recursive 'test/**/*.spec.js' --timeout 60000"},"_npmUser":{"name":"craigparra","email":"craigparra@gmail.com"},"repository":{"url":"git+https://github.com/alt-javascript/jsnosqlc.git","type":"git","directory":"packages/cassandra"},"_npmVersion":"10.8.2","description":"JSNOSLQC Apache Cassandra driver via cassandra-driver","directories":{},"_nodeVersion":"20.20.1","dependencies":{"cassandra-driver":"^4.8.0","@alt-javascript/jsnosqlc-core":"*","@alt-javascript/jsnosqlc-memory":"*"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.7","mocha":"^10.2.0"},"_npmOperationalInternal":{"tmp":"tmp/jsnosqlc-cassandra_1.0.1_1774354034236_0.16759934317621172","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@alt-javascript/jsnosqlc-cassandra","version":"1.1.1","description":"JSNOSLQC Apache Cassandra driver via cassandra-driver","keywords":["jsnosqlc","nosql","cassandra","apache","driver"],"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"homepage":"https://github.com/alt-javascript/jsnosqlc/tree/main/packages/cassandra#readme","repository":{"type":"git","url":"git+https://github.com/alt-javascript/jsnosqlc.git","directory":"packages/cassandra"},"type":"module","main":"index.js","scripts":{"test":"mocha --recursive 'test/**/*.spec.js' --timeout 60000"},"dependencies":{"@alt-javascript/jsnosqlc-core":"*","@alt-javascript/jsnosqlc-memory":"*","cassandra-driver":"^4.8.0"},"devDependencies":{"chai":"^4.3.7","mocha":"^10.2.0"},"author":{"name":"Craig Parravicini"},"contributors":[{"name":"Claude","url":"Anthropic"}],"license":"MIT","_id":"@alt-javascript/jsnosqlc-cassandra@1.1.1","gitHead":"20256a64a39eb4643b126a3996f360ade0aad2da","bugs":{"url":"https://github.com/alt-javascript/jsnosqlc/issues"},"_nodeVersion":"20.20.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-ESg6zsQvtzT73SkyzAtTInNLozgzT2WOdJ52pWTiIWh/SWTTIwinBBY9cYB16OHdiPI1ffleWNC94J7j1DJypw==","shasum":"febf50abac74f398178f8fd388241a4f65f3fa41","tarball":"https://registry.npmjs.org/@alt-javascript/jsnosqlc-cassandra/-/jsnosqlc-cassandra-1.1.1.tgz","fileCount":8,"unpackedSize":15855,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alt-javascript%2fjsnosqlc-cassandra@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC5UVtj5C35SGTufewlQefinWZCTylD7EYyAHLuvHKWIAiEA3cs8Xcl+MwHBeCi5pOP5xjKCugEPl+tvsP5yLsGrXDU="}]},"_npmUser":{"name":"craigparra","email":"craigparra@gmail.com"},"directories":{},"maintainers":[{"name":"craigparra","email":"craigparra@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jsnosqlc-cassandra_1.1.1_1774503261096_0.9696964168623639"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-24T12:00:10.690Z","modified":"2026-03-26T05:34:21.574Z","1.0.0":"2026-03-24T12:00:11.005Z","1.0.1":"2026-03-24T12:07:14.381Z","1.1.1":"2026-03-26T05:34:21.244Z"},"bugs":{"url":"https://github.com/alt-javascript/jsnosqlc/issues"},"author":{"name":"Craig Parravicini"},"license":"MIT","homepage":"https://github.com/alt-javascript/jsnosqlc/tree/main/packages/cassandra#readme","keywords":["jsnosqlc","nosql","cassandra","apache","driver"],"repository":{"type":"git","url":"git+https://github.com/alt-javascript/jsnosqlc.git","directory":"packages/cassandra"},"description":"JSNOSLQC Apache Cassandra driver via cassandra-driver","contributors":[{"name":"Claude","url":"Anthropic"}],"maintainers":[{"name":"craigparra","email":"craigparra@gmail.com"}],"readme":"# @alt-javascript/jsnosqlc-cassandra\n\n[![Language](https://img.shields.io/badge/language-JavaScript-yellow.svg)](https://developer.mozilla.org/en-US/docs/Web/JavaScript)\n[![npm version](https://img.shields.io/npm/v/%40alt-javascript%2Fjsnosqlc-cassandra)](https://www.npmjs.com/package/@alt-javascript/jsnosqlc-cassandra)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![CI](https://github.com/alt-javascript/jsnosqlc/actions/workflows/node.js.yml/badge.svg)](https://github.com/alt-javascript/jsnosqlc/actions/workflows/node.js.yml)\n\nJSNOSLQC driver for Apache Cassandra via the official [cassandra-driver](https://www.npmjs.com/package/cassandra-driver).\n\n**Part of the [@alt-javascript/jsnosqlc](https://github.com/alt-javascript/jsnosqlc) monorepo.**\n\n## Install\n\n```bash\nnpm install @alt-javascript/jsnosqlc-core @alt-javascript/jsnosqlc-cassandra\n```\n\n## Usage\n\n```javascript\nimport { DriverManager, Filter } from '@alt-javascript/jsnosqlc-core';\nimport '@alt-javascript/jsnosqlc-cassandra'; // self-registers with DriverManager\n\n// Keyspace created automatically (SimpleStrategy, replication_factor: 1)\nconst client = await DriverManager.getClient('jsnosqlc:cassandra:localhost:9042/myapp');\nconst metrics = client.getCollection('metrics');\n\n// Store and retrieve\nawait metrics.store('m1', { type: 'cpu', value: 72.5, host: 'web-01' });\nconst m = await metrics.get('m1');\n\n// Insert with auto-assigned id\nconst id = await metrics.insert({ type: 'memory', value: 55.0, host: 'web-02' });\n\n// Patch specific fields\nawait metrics.update('m1', { value: 68.3 });\n\n// Query — full table scan + in-memory filter (see note below)\nconst filter = Filter.where('type').eq('cpu').and('value').gt(70).build();\nconst cursor = await metrics.find(filter);\nconst highCpu = cursor.getDocuments();\n\nawait client.close();\n```\n\n> ⚠ **`find()` performs a full table scan** for non-primary-key queries. All documents are\n> fetched via `SELECT *` and filtered in-memory. This is suitable for small datasets and\n> development. For production access patterns, model your Cassandra tables to support your\n> queries natively with appropriate partition keys and clustering columns.\n\n## URL Scheme\n\n```\njsnosqlc:cassandra:<host>:<port>/<keyspace>\n```\n\n| URL | Description |\n|---|---|\n| `jsnosqlc:cassandra:localhost:9042/myapp` | Local Cassandra, keyspace `myapp` |\n| `jsnosqlc:cassandra:cassandra.example.com:9042/prod` | Remote Cassandra |\n\n## Connection Properties\n\n| Property | Description |\n|---|---|\n| `contactPoints` | Array of contact points (overrides URL host) |\n| `localDataCenter` | Local data centre name (default: `datacenter1`) |\n\n```javascript\nconst client = await DriverManager.getClient(\n  'jsnosqlc:cassandra:localhost:9042/myapp',\n  { localDataCenter: 'DC1' }\n);\n```\n\n## Schema\n\nEach collection maps to a Cassandra table created automatically:\n\n```cql\nCREATE TABLE IF NOT EXISTS \"<collection>\" (\n  pk   text PRIMARY KEY,\n  data text\n)\n```\n\nDocuments are stored as JSON in the `data` column. The `pk` column holds the document key.\n\n## Keyspace Management\n\nThe keyspace is created automatically with `SimpleStrategy` and `replication_factor: 1`. This is appropriate for local and development use. For production, create the keyspace manually with your desired replication strategy before connecting:\n\n```cql\nCREATE KEYSPACE myapp\n  WITH replication = {\n    'class': 'NetworkTopologyStrategy',\n    'DC1': 3\n  };\n```\n\n## Local Development with Docker\n\nCassandra takes approximately 30–60 seconds to become ready after container start.\n\n```bash\ndocker run --rm -d -p 9042:9042 cassandra:4\n\n# Wait for Cassandra to be ready before connecting\ndocker exec <container_id> nodetool status\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}