scylladb-crystal-driver
Version, currently main branch1 version
- main branchlatestMay 30, 2023
github.com/lanjoni/scylladb-crystal-driver
ScyllaDB complete Crystal driver
Installation
# Add this to your shard.yml
dependencies:
scylladb-crystal-driver:
github: lanjoni/scylladb-crystal-driver
branch: mainmain is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
- no constraint declared
- License
- MIT
- Author
- João Augusto Lissoni Lanjoni
Dependencies
Runtime Dependencies
- db~> 0.11.0github: crystal-lang/crystal-db
Development Dependencies
- spectator*github: icy-arctic-fox/spectatordev
- crystal_lib*github: crystal-lang/crystal_libdev
README
About
This project aims to build an environment for interoperability and use of ScyllaDB with the Crystal programming language, aiming at building a driver and wrapper for communication.
Installation
Please make sure you have installed the C/C++ Driver for ScyllaDB.
Then add this to your application's shard.yml:
dependencies:
scylladb:
github: lanjoni/scylladb-crystal-driver
Documentation
Usage
From the basic example:
require "scylladb/dbapi"
DB.open("scylladb://127.0.0.1/test") do |db|
db.exec(<<-CQL)
create table posts (
id timeuuid primary key,
title text,
body text,
created_at timestamp
)
CQL
db.exec("insert into posts (id, title, body, created_at) values (now(), ?, ?, ?)",
"Hello World",
"Hello, World. I have a story to tell.",
Time.now)
db.query("select title, body, created_at from posts") do |rs|
rs.each do
title = rs.read(String)
body = rs.read(String)
created_at = rs.read(Time)
puts title
puts "(#{created_at})"
puts body
end
end
end
Please refer to crystal-db for further usage instructions.
Types
scylladb-crystal-driver supports all the DB::Any primitive types plus Int8, Int16 and some additional value types:
datemaps toScyllaDB::DBApi::Datetimemaps toScyllaDB::DBApi::Timeuuidmaps toScyllaDB::DBApi::Uuidtimeuuidmaps toScyllaDB:DBApi::TimeUuid
Some of the collection types are also supported:
listmaps toArraysetmaps toSetmapmaps toHash
Development
After installation is complete run:
$ crystal spec
This command runs the tests to verify that everything is working correctly.
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE for more information.
Contributors
- lanjoni - João Lanjoni <guto@lanjoni.dev> (he/him)
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
main- Seen
- May 30, 2023
- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/lanjoni/scylladb-crystal-driver
Metadata
- Created
- Aug 12, 2026
- Updated
- Sep 24, 2026
- Synced
- Sep 24, 2026
- Versions
- 1