Skip to content

Commit f1c981f

Browse files
committed
chore(depot-client): split sqlite vfs transports
1 parent b90bbe3 commit f1c981f

7 files changed

Lines changed: 370 additions & 400 deletions

File tree

engine/packages/depot-client/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ crate-type = ["lib"]
1212

1313
[dependencies]
1414
anyhow.workspace = true
15+
async-trait.workspace = true
1516
crossbeam-channel = "0.5"
1617
libsqlite3-sys = { version = "0.30", features = ["bundled"] }
1718
rivet-envoy-client = { workspace = true, features = ["native-transport"] }
@@ -25,7 +26,6 @@ moka = { version = "0.12", default-features = false, features = ["sync"] }
2526
parking_lot.workspace = true
2627

2728
[dev-dependencies]
28-
async-trait.workspace = true
2929
depot = { workspace = true, features = ["test-faults"] }
3030
futures-util.workspace = true
3131
gas.workspace = true

engine/packages/depot-client/src/database.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ use tokio::runtime::Handle;
77
use crate::{
88
query::{BindParam, ExecResult, ExecuteResult, QueryResult},
99
vfs::{
10-
NativeVfsHandle, SqliteTransport, SqliteVfs, SqliteVfsMetrics, SqliteVfsMetricsSnapshot,
11-
VfsConfig, VfsPreloadHintSnapshot, fetch_initial_main_page_for_registration,
10+
ConveyerSqliteTransport, EnvoySqliteTransport, NativeVfsHandle, SqliteVfs,
11+
SqliteVfsMetrics, SqliteVfsMetricsSnapshot, VfsConfig, VfsPreloadHintSnapshot,
12+
fetch_initial_main_page_for_registration,
1213
},
1314
worker::SqliteWorkerHandle,
1415
};
@@ -31,8 +32,8 @@ pub async fn open_database_from_envoy(
3132
metrics: Option<Arc<dyn SqliteVfsMetrics>>,
3233
) -> Result<NativeDatabaseHandle> {
3334
let vfs_name = vfs_name_for_actor_database(&actor_id, generation);
34-
let transport = SqliteTransport::from_envoy(handle);
35-
let initial_main_page = fetch_initial_main_page_for_registration(&transport, &actor_id)
35+
let transport = Arc::new(EnvoySqliteTransport::new(handle));
36+
let initial_main_page = fetch_initial_main_page_for_registration(transport.clone(), &actor_id)
3637
.await
3738
.map_err(|e| anyhow!("failed to preload sqlite main page: {e}"))?;
3839
let vfs = Arc::new(
@@ -61,8 +62,8 @@ pub async fn open_database_from_conveyer(
6162
metrics: Option<Arc<dyn SqliteVfsMetrics>>,
6263
) -> Result<NativeDatabaseHandle> {
6364
let vfs_name = vfs_name_for_actor_database(&actor_id, generation);
64-
let transport = SqliteTransport::from_conveyer(db);
65-
let initial_main_page = fetch_initial_main_page_for_registration(&transport, &actor_id)
65+
let transport = Arc::new(ConveyerSqliteTransport::new(db));
66+
let initial_main_page = fetch_initial_main_page_for_registration(transport.clone(), &actor_id)
6667
.await
6768
.map_err(|e| anyhow!("failed to preload sqlite main page: {e}"))?;
6869
let vfs = Arc::new(

0 commit comments

Comments
 (0)