From 5e3219b496771fcdb001380e8860990f98141e4e Mon Sep 17 00:00:00 2001 From: Robsdedude Date: Sat, 13 Apr 2024 14:20:27 +0200 Subject: [PATCH] Add mTLS as feature target to README --- README.md | 205 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 105 insertions(+), 100 deletions(-) diff --git a/README.md b/README.md index d754fc1..faaba04 100644 --- a/README.md +++ b/README.md @@ -2,112 +2,117 @@ 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. +* 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. ## MSRV + Currently, this crate's minimum supported Rust version is `1.70`. A bump in MSRV is considered a minor breaking change. - ## Feature Progress - * [x] (Well-Written) Docs and Examples - * [x] Driver - * [x] Config - * [x] `user_agent` - * [x] `auth` - * [x] basic - * [x] kerberos - * [x] bearer - * [x] custom - * [x] `max_connection_pool_size` - * [x] `fetch_size` - * [x] `connection_timeout` - * [x] `connection_acquisition_timeout` - * [x] `resolver` - * [x] `max_connection_lifetime` - * [x] routing and direct connections - * [x] `keep_alive` - * [x] `TLS` - * [x] `.session` - * [x] `.supports_multi_db` - * [x] `.supports_session_auth` - * [x] `.execute_query` - * [x] `.verify_connectivity` - * [x] `.verify_authentication` - * [x] `.get_server_info` - * [x] `.is_encrypted` - * [x] Session - * [x] Config - * [x] database - * [x] bookmarks - * [x] impersonated_user - * [x] fetch_size - * [x] session_auth - * [x] Auto Commit - * [x] Transaction - * [x] Config - * [x] Metadata - * [x] Timeout - * [x] Unmanaged - * [x] With Retry - * [ ] Result (`RecordStream`) - * [x] `.keys` - * [x] `.consume` (Summary) - * [x] `.server_info` - * [x] `.address` - * [x] `.server_agent` - * [x] `.protocol_version` - * [x] `.database` - * [x] `.query`, `.parameters` (won't implement) - * [x] `.query_type` - * [x] `.plan` - * [x] `.profile` - * [x] `.notifications` - * [x] `.counters` - * [x] `.result_available_after` - * [x] `.result_consumed_after` - * [x] `.single` - * [ ] `.into::()` - * [ ] `.closed` (not sure if needed?) - * [ ] Record - * [x] most basic functionality - * [ ] ergonomic way to access by key - * [x] Bookmark Management - * [ ] Protocol Versions - * [x] 4.4 - * [x] 5.0 (utc fix) - * [x] 5.1 (re-auth) - * [x] 5.2 (notification filtering) - * [x] 5.3 (bolt agent) - * [ ] 5.4 (telemetry) - * [x] Types - * [x] `Null` - * [x] `Integer` - * [x] `Float` - * [x] `String` - * [x] `Boolean` - * [x] `Bytes` - * [x] `List` - * [x] `Map` - * [x] `Node` - * [x] `Relationship` - * [x] `Path` - * [x] `Spatial` (point) - * [x] `Temporal` (date, time, datetime, duration) - * [ ] Proper Unit Tests - * [x] CI - * [x] rustfmt - * [x] clippy - * [x] Unit Tests - * [ ] Public API SemVer Compatibility Tests ([cargo-public-api](https://github.com/enselic/cargo-public-api)) - * [x] TestKit -## Note on async -Currently, there are no plans to add async support until a proper abstraction over multiple runtimes is available so that users can choose their preferred runtime. -As it stands, the async ecosystem would either force this crate to dictate a runtime or do an ugly dance to support multiple runtimes. +* [x] (Well-Written) Docs and Examples +* [ ] Driver + * [ ] Config + * [x] `user_agent` + * [x] `auth` + * [x] basic + * [x] kerberos + * [x] bearer + * [x] custom + * [x] `max_connection_pool_size` + * [x] `fetch_size` + * [x] `connection_timeout` + * [x] `connection_acquisition_timeout` + * [x] `resolver` + * [x] `max_connection_lifetime` + * [x] routing and direct connections + * [x] `keep_alive` + * [x] `TLS` + * [ ] mTLS for 2FA + * [x] `.session` + * [x] `.supports_multi_db` + * [x] `.supports_session_auth` + * [x] `.execute_query` + * [x] `.verify_connectivity` + * [x] `.verify_authentication` + * [x] `.get_server_info` + * [x] `.is_encrypted` +* [x] Session + * [x] Config + * [x] database + * [x] bookmarks + * [x] impersonated_user + * [x] fetch_size + * [x] session_auth + * [x] Auto Commit + * [x] Transaction + * [x] Config + * [x] Metadata + * [x] Timeout + * [x] Unmanaged + * [x] With Retry +* [ ] Result (`RecordStream`) + * [x] `.keys` + * [x] `.consume` (Summary) + * [x] `.server_info` + * [x] `.address` + * [x] `.server_agent` + * [x] `.protocol_version` + * [x] `.database` + * [x] `.query`, `.parameters` (won't implement) + * [x] `.query_type` + * [x] `.plan` + * [x] `.profile` + * [x] `.notifications` + * [x] `.counters` + * [x] `.result_available_after` + * [x] `.result_consumed_after` + * [x] `.single` + * [ ] `.into::()` + * [ ] `.closed` (not sure if needed?) + * [ ] Record + * [x] most basic functionality + * [ ] ergonomic way to access by key +* [x] Bookmark Management +* [ ] Protocol Versions + * [x] 4.4 + * [x] 5.0 (utc fix) + * [x] 5.1 (re-auth) + * [x] 5.2 (notification filtering) + * [x] 5.3 (bolt agent) + * [ ] 5.4 (telemetry) +* [x] Types + * [x] `Null` + * [x] `Integer` + * [x] `Float` + * [x] `String` + * [x] `Boolean` + * [x] `Bytes` + * [x] `List` + * [x] `Map` + * [x] `Node` + * [x] `Relationship` + * [x] `Path` + * [x] `Spatial` (point) + * [x] `Temporal` (date, time, datetime, duration) +* [ ] Proper Unit Tests +* [x] CI + * [x] rustfmt + * [x] clippy + * [x] Unit Tests + * [ ] Public API SemVer Compatibility Tests ([cargo-public-api](https://github.com/enselic/cargo-public-api)) + * [x] TestKit + +## Note on async + +Currently, there are no plans to add async support until a proper abstraction over multiple runtimes is available so +that users can choose their preferred runtime. +As it stands, the async ecosystem would either force this crate to dictate a runtime or do an ugly dance to support +multiple runtimes. Even then, the supported runtimes would be limited to the ones chosen by this crate.