0
0
mirror of https://github.com/tursodatabase/libsql.git synced 2024-12-15 22:39:05 +00:00
libsql/Cargo.toml
Athos 7ce212604e
Proof of concept of CDC on libsql-server (#1388)
* Add SQLD_HTTP_PRIMARY_URL config and pass it all the way down to user routes

* Add broadcaster struct to namespaces to notify updates

* Add user route that allows listening to updates

* Aggregate events before broadcasting them

* Unsubscribe when stream is dropped and other minor improvements

* Add BrodcasterRegistry and BrodcasterHandle to manage broadcaster lifecycle

* Simplify code

* Update hooks during statement execution

Connection can live arbitrarily long, so we can't only register hooks
when they are created.

* Always inline should serialize checker of broadcaster message

Co-authored-by: Lucio Franco <luciofranco14@gmail.com>

* Replace HashMap with BTreeMap on broadcaster state

It improves performance on the case where we have thousands of updates
to the same table.

* Add counters to events sent and dropped

---------

Co-authored-by: Lucio Franco <luciofranco14@gmail.com>
2024-06-13 13:28:06 +00:00

81 lines
2.0 KiB
TOML

[workspace]
resolver = "2"
members = [
"libsql",
"bindings/c",
"bindings/wasm",
"libsql-sys",
"libsql-server",
"bottomless",
"bottomless-cli",
"libsql-replication",
"libsql-ffi",
"libsql-hrana",
"vendored/rusqlite",
"vendored/sqlite3-parser",
"xtask", "libsql-hrana",
"libsql-wal",
"libsql-storage",
"libsql-storage-server",
]
exclude = [
"./libsql-sqlite3/ext/crr",
"./libsql-sqlite3/ext/libsql-wasi",
"libsql-shell",
"tools/rebuild-log",
"tools/fuzz",
]
[profile.release]
codegen-units = 1
panic = "unwind"
[workspace.dependencies]
rusqlite = { package = "libsql-rusqlite", path = "vendored/rusqlite", version = "0.31", default-features = false, features = [
"libsql-experimental",
"column_decltype",
"load_extension",
"modern_sqlite",
"functions",
"limits",
"hooks",
] }
# Config for 'cargo dist'
[workspace.metadata.dist]
# The preferred cargo-dist version to use in CI (Cargo.toml SemVer syntax)
cargo-dist-version = "0.14.1"
# CI backends to support
ci = "github"
# The installers to generate for each app
installers = ["shell", "homebrew"]
# A GitHub repo to push Homebrew formulas to
tap = "libsql/homebrew-sqld"
# Customize the Homebrew formula name
formula = "sqld"
# Target platforms to build apps for (Rust target-triple syntax)
targets = ["aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"]
# Publish jobs to run in CI
publish-jobs = ["homebrew"]
# Whether cargo-dist should create a Github Release or use an existing draft
create-release = true
# Publish jobs to run in CI
pr-run-mode = "plan"
# A prefix git tags must include for cargo-dist to care about them
tag-namespace = "libsql-server"
# Whether to install an updater program
install-updater = false
[workspace.metadata.dist.github-custom-runners]
aarch64-apple-darwin = "macos-14"
aarch64-unknown-linux-gnu = "buildjet-8vcpu-ubuntu-2204-arm"
# The profile that 'cargo dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"