supabase / pg_replicate

Build Postgres replication apps in Rust
Apache License 2.0
602 stars 24 forks source link

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

Closed funlennysub closed 3 months ago

funlennysub commented 3 months 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 3 months 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 3 months 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 3 months 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.