2 releases
0.0.2 | Dec 24, 2023 |
---|---|
0.0.1 | Dec 8, 2023 |
#2352 in Database interfaces
32 downloads per month
1MB
21K
SLoC
Neo4j Driver for Rust
Disclaimer:
- While I'm currently affiliated with Neo4j, this is my private hobby project. It's not an officially supported piece of software by Neo4j.
- This is a work in progress, and it's mostly developed in my spare time.
- This project is primarily meant for private studies. Yet, I decided to publish it as it might be useful for others as well.
Feature Progress:
- (Well-Written) Docs and Examples
- Driver
- Config
-
user_agent
-
auth
- basic
- kerberos
- bearer
- custom
-
max_connection_pool_size
-
fetch_size
-
connection_timeout
-
connection_acquisition_timeout
-
resolver
- routing and direct connections
-
keep_alive
(not supported bystd
https://github.com/rust-lang/rust/issues/69774) -
TLS
-
-
.session
-
.supports_multi_db
-
.supports_session_auth
-
.execute_query
-
.verify_connectivity
-
.verify_authentication
-
.get_server_info
-
.encrypted
(not sure if needed?)
- Config
- Session
- Config
- database
- bookmarks
- impersonated_user
- fetch_size
- session_auth
- Auto Commit
- Transaction
- Config
- Metadata
- Timeout
- Unmanaged
- With Retry
- Config
- Config
- Result (
RecordStream
)-
.keys
-
.consume
(Summary)-
.server_info
-
.address
-
.server_agent
-
.protocol_version
-
-
.database
-
.query
,.parameters
(won't implement) -
.query_type
-
.plan
-
.profile
-
.notifications
-
.counters
-
.result_available_after
-
.result_consumed_after
-
-
.single
-
.into::<EagerResult>()
-
.closed
(not sure if needed?) - Record
- most basic functionality
- ergonomic way to access by key
-
- Bookmark Management
- Protocol Versions
- 4.4
- 5.0 (utc fix)
- 5.1 (re-auth)
- 5.2 (notification filtering)
- 5.3 (bolt agent)
- 5.4 (telemetry)
- Types
-
Null
-
Integer
-
Float
-
String
-
Boolean
-
Bytes
-
List
-
Map
-
Node
-
Relationship
-
Path
-
Spatial
(point) -
Temporal
(date, time, datetime, duration)
-
- Proper Unit Tests
- CI (https://github.com/actions-rust-lang/setup-rust-toolchain ?)
- rustfmt
- clippy
- Unit Tests
- Public API SemVer Compatibility Tests (cargo-public-api)
- TestKit
Future Ideas:
Dependencies
~14–47MB
~781K SLoC