surrealdb
Version, currently 0.11 version
- 0.1latestSep 22, 2022
github.com/mamiysr/surrealdb.cr
SurrealDB driver for Crystal
7 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
surrealdb:
github: mamiysr/surrealdb.cr
version: ~> 0.1Then run:
shards installshard.yml
- Crystal
1.5.1- License
- MIT
- Author
- Muhammed Yaşar <mamiysr@gmail.com>
Dependencies
This version declares no dependencies.
README
# surrealdb
**[WIP]** The unofficial SurrealDB library for Crystal.
## Installation
1. Add the dependency to your `shard.yml`:
```yaml
dependencies:
surrealdb:
github: yorci/surrealdb.cr
```
2. Run `shards install`
## Usage
### Connection
```crystal
require "surrealdb"
# FOR HTTP Client
sdb = SurrealDB.create(
url: "http://0.0.0.0:8000/sql",
client: SurrealDB::HTTP,
)
# FOR Websocket Client
sdb = SurrealDB.create(
url: "http://0.0.0.0:8000/rpc",
client: SurrealDB::WS,
)
# Set authorization variables
sdb.signin "root", "root"
sdb.use "test", "test"
# Creates a records in a given table
sdb.create(
"person",
{"title" => "Founder & CEO",
"name" => {
"first" => "Tobie",
"last" => "Morgan Hitchcock",
},
"marketing" => true,
"identifier" => SurrealDB.guid,
}
)
# Selects all records in given table
sdb.select("person")
# Update a person record with a specific id
# note `#change` or `#update` both the same for http client
sdb.update(
"person:jaime",
{"marketing" => false}
)
# [WS] Perform a custom advanced query
sdb.query(
"SELECT marketing, count() FROM type::table($tb) GROUP BY marketing",
{"tb" => "person"}
)
# [HTTP] Perform a custom advanced query
# note: you cannot use query parameter for http client
sdb.query(
"SELECT marketing, count() FROM person GROUP BY marketing",
nil
)
# [WS] Perform a custom advanced query
# this will return *WSErrorResponse*
sdb.query(
"SELECT marketing, counr() FROM type::table($tb) GROUP BY marketing",
{"tb" => "person"}
)
# [HTTP] Perform a custom advanced query
# note: you cannot use query parameter for http client
# this will return *HTTPErrorResponse*
sdb.query(
"SELECT marketing, counr() FROM person GROUP BY marketing",
nil
)
```
## Contributing
1. Fork it (<https://github.com/yorci/surrealdb/fork>)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
## Contributors
- [Muhammed Yaşar](https://github.com/yorci) - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.1- Tagged
- Sep 22, 2022
- Commit
94e9b5cbdebc- Crystal
1.5.1- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/mamiysr/surrealdb.cr
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 1