Repository: neo4j-labs/graph (language: rust)

Issue:
 RUSTSEC-2024-0379 affects this crate
A [security advisory has been issued](https://rustsec.org/advisories/RUSTSEC-2024-0379) over the status of `fast-float`, a [direct dependency of this crate](https://github.com/neo4j-labs/graph/blob/3643e411dd3271a2ea3e82aba46c1749ca22ed7c/Cargo.toml#L32). 

You can reference how other people affected by this are tackling it by [looking at the primary issue](https://github.com/aldanor/fast-float-rust/issues/37) and checking the backlinks that are marked as (purple) Closed. 

For instance, [`polars` switched to `fast-float2`](https://github.com/pola-rs/polars/pull/19578) that has merged and published fixes. I cloned this repository, dropped `fast-float2` in as a replacement, verified that no tests (both `cargo` and `pytest`) started failing, and submitted a pull request in #131.

Hope this helps. Thanks!


Discussion / hints:

Fix patch:
diff --git a/Cargo.toml b/Cargo.toml
index a81cec3..e4cf0c9 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -29,7 +29,7 @@ dashmap = "5.5.0"
 delegate = "0.8.0"
 directories = "4.0"
 env_logger = "0.9.3"
-fast-float = "0.2.0"
+fast-float2 = "0.2.3"
 float-ord = "0.3.2"
 futures = "0.3.28"
 fxhash = "0.2.1"
diff --git a/crates/builder/Cargo.toml b/crates/builder/Cargo.toml
index 45eb97e..a44f44a 100644
--- a/crates/builder/Cargo.toml
+++ b/crates/builder/Cargo.toml
@@ -15,7 +15,7 @@ atomic.workspace = true
 byte-slice-cast.workspace = true
 dashmap.workspace = true
 delegate.workspace = true
-fast-float.workspace = true
+fast-float2.workspace = true
 fxhash.workspace = true
 gdl = { workspace = true, optional = true }
 linereader.workspace = true
diff --git a/crates/builder/src/input/mod.rs b/crates/builder/src/input/mod.rs
index afef28e..eebed7d 100644
--- a/crates/builder/src/input/mod.rs
+++ b/crates/builder/src/input/mod.rs
@@ -102,6 +102,6 @@ impl_parse_value!(
 
 impl_parse_value!(parse_float, f32, f64);
 
-fn parse_float<T: fast_float::FastFloat>(bytes: &[u8]) -> (T, usize) {
-    fast_float::parse_partial(bytes).unwrap()
+fn parse_float<T: fast_float2::FastFloat>(bytes: &[u8]) -> (T, usize) {
+    fast_float2::parse_partial(bytes).unwrap()
 }


Test patch: