Skip to content

Commit 20d65a8

Browse files
jyn514abonander
authored andcommitted
Remove hashbrown dependency
Hashbrown is now the hashmap used in the standard library, so no need to pull in an external dependency. This switches to using `AHashMap` directly.
1 parent 0ad121b commit 20d65a8

File tree

19 files changed

+47
-28
lines changed

19 files changed

+47
-28
lines changed

Cargo.lock

Lines changed: 20 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sqlx-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ runtime-actix = [ "sqlx-rt/runtime-actix" ]
3939
offline = [ "serde", "either/serde" ]
4040

4141
[dependencies]
42+
ahash = "0.5"
4243
atoi = "0.3.2"
4344
sqlx-rt = { path = "../sqlx-rt", version = "0.1.1" }
4445
base64 = { version = "0.13.0", default-features = false, optional = true, features = [ "std" ] }
@@ -60,7 +61,6 @@ futures-channel = { version = "0.3.5", default-features = false, features = [ "s
6061
futures-core = { version = "0.3.5", default-features = false }
6162
futures-util = { version = "0.3.5", features = [ "sink" ] }
6263
generic-array = { version = "0.14.2", default-features = false, optional = true }
63-
hashbrown = "0.9.0"
6464
hex = "0.4.2"
6565
hmac = { version = "0.9.0", default-features = false, optional = true }
6666
itoa = "0.4.5"

sqlx-core/src/any/statement.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ use crate::column::ColumnIndex;
33
use crate::error::Error;
44
use crate::ext::ustr::UStr;
55
use crate::statement::Statement;
6+
use crate::HashMap;
67
use either::Either;
7-
use hashbrown::HashMap;
88
use std::borrow::Cow;
99
use std::sync::Arc;
1010

sqlx-core/src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,7 @@ pub mod mysql;
9999
#[cfg(feature = "mssql")]
100100
#[cfg_attr(docsrs, doc(cfg(feature = "mssql")))]
101101
pub mod mssql;
102+
103+
/// sqlx uses ahash for increased performance, at the cost of reduced DoS resistance.
104+
use ahash::AHashMap as HashMap;
105+
//type HashMap<K, V> = std::collections::HashMap<K, V, ahash::RandomState>;

sqlx-core/src/mssql/connection/stream.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use crate::mssql::protocol::return_value::ReturnValue;
2020
use crate::mssql::protocol::row::Row;
2121
use crate::mssql::{MssqlColumn, MssqlConnectOptions, MssqlDatabaseError};
2222
use crate::net::MaybeTlsStream;
23-
use hashbrown::HashMap;
23+
use crate::HashMap;
2424
use std::sync::Arc;
2525

2626
pub(crate) struct MssqlStream {

sqlx-core/src/mssql/protocol/col_meta_data.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crate::ext::ustr::UStr;
66
use crate::mssql::io::MssqlBufExt;
77
use crate::mssql::protocol::type_info::TypeInfo;
88
use crate::mssql::MssqlColumn;
9-
use hashbrown::HashMap;
9+
use crate::HashMap;
1010

1111
#[derive(Debug)]
1212
pub(crate) struct ColMetaData;

sqlx-core/src/mssql/row.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::ext::ustr::UStr;
44
use crate::mssql::protocol::row::Row as ProtocolRow;
55
use crate::mssql::{Mssql, MssqlColumn, MssqlValueRef};
66
use crate::row::Row;
7-
use hashbrown::HashMap;
7+
use crate::HashMap;
88
use std::sync::Arc;
99

1010
pub struct MssqlRow {

sqlx-core/src/mssql/statement.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ use crate::error::Error;
33
use crate::ext::ustr::UStr;
44
use crate::mssql::{Mssql, MssqlArguments, MssqlColumn, MssqlTypeInfo};
55
use crate::statement::Statement;
6+
use crate::HashMap;
67
use either::Either;
7-
use hashbrown::HashMap;
88
use std::borrow::Cow;
99
use std::sync::Arc;
1010

sqlx-core/src/mysql/connection/executor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ use crate::mysql::{
1616
MySql, MySqlArguments, MySqlColumn, MySqlConnection, MySqlDone, MySqlRow, MySqlTypeInfo,
1717
MySqlValueFormat,
1818
};
19+
use crate::HashMap;
1920
use either::Either;
2021
use futures_core::future::BoxFuture;
2122
use futures_core::stream::BoxStream;
2223
use futures_core::Stream;
2324
use futures_util::{pin_mut, TryStreamExt};
24-
use hashbrown::HashMap;
2525
use std::{borrow::Cow, sync::Arc};
2626

2727
impl MySqlConnection {

sqlx-core/src/mysql/row.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::error::Error;
33
use crate::ext::ustr::UStr;
44
use crate::mysql::{protocol, MySql, MySqlColumn, MySqlValueFormat, MySqlValueRef};
55
use crate::row::Row;
6-
use hashbrown::HashMap;
6+
use crate::HashMap;
77
use std::sync::Arc;
88

99
/// Implementation of [`Row`] for MySQL.

0 commit comments

Comments
 (0)