{"id":15056671,"url":"https://github.com/manenko/cassander","last_synced_at":"2026-02-28T13:31:50.935Z","repository":{"id":227352538,"uuid":"771061746","full_name":"manenko/cassander","owner":"manenko","description":"Cassandra driver for Rust which utilizes the DataStax C/C++ driver","archived":false,"fork":false,"pushed_at":"2025-04-30T17:14:55.000Z","size":278,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"development","last_synced_at":"2025-10-04T14:27:47.934Z","etag":null,"topics":["cassandra","cassandra-driver","database-driver","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2024-03-12T16:10:28.000Z","updated_at":"2025-04-27T06:18:54.000Z","dependencies_parsed_at":"2024-09-24T21:55:06.847Z","dependency_job_id":"9212733a-3cff-4c89-a431-05aa6404c536","html_url":"https://github.com/manenko/cassander","commit_stats":null,"previous_names":["manenko/cassander"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/manenko/cassander","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manenko%2Fcassander","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manenko%2Fcassander/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manenko%2Fcassander/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manenko%2Fcassander/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manenko","download_url":"https://codeload.github.com/manenko/cassander/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manenko%2Fcassander/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29935360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T13:16:57.922Z","status":"ssl_error","status_checked_at":"2026-02-28T13:11:15.149Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["cassandra","cassandra-driver","database-driver","rust"],"created_at":"2024-09-24T21:54:59.458Z","updated_at":"2026-02-28T13:31:50.896Z","avatar_url":"https://github.com/manenko.png","language":"Rust","readme":"# Cassander\n\nCassander provides Rust developers with a wrapper for the DataStax C/C++ Driver, enabling interaction with Apache Cassandra and DataStax products. Currently under development, users should anticipate possible changes and some bugs.\n\nThe library was tested against C/C++ driver version [`2.17.1`](https://github.com/datastax/cpp-driver/tree/2.17.1), but should work with older versions too.\n\nTo get started, include Cassander in your `Cargo.toml` as follows:\n\n```toml\n[dependencies]\ncassander = \"0.1\"\n```\n\n## Prerequisites\n\nMake sure you have the DataStax C/C++ Driver [installed](https://docs.datastax.com/en/developer/cpp-driver/2.17/topics/installation/) and available for dynamic loading.\n\n## Optional Features\n\nCassander comes with several optional features to enhance its functionality for specific use cases.\n\n### `serde`\n\nThe `serde` feature allows for serialization and deserialization of `SessionConfig` through the [`serde`](https://docs.rs/serde/latest/serde/) crate, facilitating the storage of driver configurations in a file for application loading.\n\nDuration values are serialized as strings (e.g., `100ms`, `2s`, `1h10m`) using the [`duration_string`](https://docs.rs/duration-string/latest/duration_string/) crate. These implementation details, however, should not be relied upon by the user.\n\n### `uuid`\n\nThis feature introduces conversions between Cassandra's `CqlUuid` and the `Uuid` from the [`uuid`](https://docs.rs/uuid/latest/uuid/) crate, simplifying the handling of UUID values.\n\n### `chrono`\n\nThe feature introduces conversions between Cassandra's date/time types and corresponding types from the [`chrono`](https://docs.rs/chrono/latest/chrono/) crate.\n\n### `num-bigint`\n\nThe feature introduces conversions between Cassandra's `CqlVarInt` and the `BigInt` from the [`num-bigint`](https://docs.rs/num-bigint/latest/num_bigint/) crate.\n\n### `bigdecimal`\n\nThe feature introduces conversions between Cassandra's `CqlDecimal` and the `BigDecimal` from the [`bigdecimal`](https://docs.rs/bigdecimal/latest/bigdecimal/) crate.\n\n## Examples\n\n### Create a session via `SessionConfigBuilder`\n\nThe `SessionConfigBuilder` facilitates creating connections to Cassandra clusters with custom settings:\n\n```rust\nuse anyhow::Result;\nuse cassander::{SessionConfigBuilder, Authenticator};\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c()\u003e {\n    let _session = SessionConfigBuilder::new()\n        .contact_point(\"cassandra.testserver.com\")\n        .authenticator(Authenticator::plain_text(\"test_user\", \"password\"))\n        .keyspace(\"test_keyspace\")\n        .page_size(5000)\n        .build()\n        .connect()\n        .await?;\n\n    Ok(())\n}\n```\n\n### Deserializing `SessionConfig` from a TOML file\n\nUpdate your application's `Cargo.toml` to include necessary dependencies and enable Cassander's `serde` feature:\n\n```toml\n[dependencies]\nanyhow    = \"1\"\ncassander = { version = \"0.1\", features = [\"serde\"] }\nserde     = { version = \"1\", features = [\"derive\"] }\ntokio     = { version = \"1\", features = [\"full\"] }\ntoml      = \"0.8\"\n```\n\nIn your `main.rs`, deserialize the TOML configuration as follows:\n\n```rust\nuse anyhow::Result;\nuse cassander::SessionConfig;\nuse serde::Deserialize;\nuse tokio::fs;\n\n#[derive(Deserialize)]\nstruct Config {\n    pub cassandra: SessionConfig\n    // Additional configuration keys and sections\n    // ...\n}\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c()\u003e {\n    let config_toml = fs::read_to_string(\"app.toml\").await?;\n    let config = toml::from_str(\u0026config_toml)?;\n\n    let _session = config.connect().await?;\n\n    Ok(())\n}\n```\n\nExample configuration file (`app.toml`):\n\n```toml\n[cassandra]\n  contact_points      = [\"127.0.0.1\"]\n  consistency         = \"Quorum\"\n  reconnect_wait_time = \"2554ms\"\n  page_size           = 5000\n  application_name    = \"Cassander Test Client\"\n  application_version = \"0.0.1\"\n  client_id           = \"37b9fd59-bc06-4a88-aaf3-bd829fd7b755\"\n\n[cassandra.authenticator.plain_text]\n  username            = \"test_user\"\n  password            = \"secret\"\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanenko%2Fcassander","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanenko%2Fcassander","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanenko%2Fcassander/lists"}