supabase / pg_replicate

Build Postgres replication apps in Rust
Apache License 2.0
559 stars 19 forks source link

[suggestion] Don't include all sinks by default #25

Closed funlennysub closed 1 month ago

funlennysub commented 1 month ago

Do you plan on locking all (maybe except for stdout) sinks behind feature flags so users don't have to compile for example duckdb (which is not "easy" to compile from what I've seen) and related crates when they don't need it? I know you have other priorities right now, but I feel like this should be added at some point.

imor commented 1 month ago

Yep, this is something I wanted to do. In fact, I've just added the "good first issue" label, in case anyone wants to take this up. If nobody picks this up, I'd probably do this at some point (sooner rather than later).

funlennysub commented 1 month ago

Great, if I were to make a pr, do you want me to make a draft first or just pr when I'm done, and do you want to have all sinks behind the feature flag?

imor commented 1 month ago

I usually mark a PR as draft when it is still in progress. So really depends on what shape the PR is in. I'd add the following features to the pg_replicate crate and their corresponding deps which should be enabled/disabled based on the feature:

duckdb - duckdb. bigquery - gcp-bigquery-client and prost

These probably will also need changes in the CI workflows to continue to test with all features enabled.