codemp/Cargo.toml
cschen f6c0b878cb feat: add specific feature flag to specify building python without abi.
This is needed because if we want to ship to sublime, having the `pyo3/abi-*`
feature enabled will result in a wheel that needs the `python3.dll` (f****g windows)
which sublime does not ship. This works fine for Linux and Mac Os, but
for windows we will need to build without abi and for Python3.8 directly
for sublime specifically and also with the abi for the generic python wheel to be
used everywhere else.
2024-09-19 21:32:46 +02:00

82 lines
2.2 KiB
TOML

[package]
name = "codemp"
description = "codemp -- code multiplexer"
homepage = "https://code.mp"
repository = "https://github.com/hexedtech/codemp"
authors = [
"alemi <me@alemi.dev>",
"zaaarf <me@zaaarf.foo>",
"frelodev <frelodev@gmail.com>",
"cschen <cschen@codemp.dev>"
]
license = "GPL-3.0-only"
edition = "2021"
version = "0.7.0"
exclude = ["dist/*"]
[lib]
name = "codemp"
crate-type = ["cdylib"]
[dependencies]
# core
tracing = "0.1"
thiserror = "1.0"
# crdt
diamond-types = "1.0"
# proto
codemp-proto = "0.7"
uuid = { version = "1.10", features = ["v4"] }
tonic = { version = "0.12", features = ["tls", "tls-roots"] }
# api
tokio = { version = "1.40", features = ["macros", "rt-multi-thread", "sync"] }
xxhash-rust = { version = "0.8", features = ["xxh3"] }
# client
tokio-stream = "0.1"
dashmap = "6.1"
# glue (multiple)
tracing-subscriber = { version = "0.3", optional = true }
# glue (java)
lazy_static = { version = "1.5", optional = true }
jni = { version = "0.21", features = ["invocation"], optional = true }
# glue (lua)
mlua-codemp-patch = { version = "0.10.0-beta.2", features = ["module", "send", "serialize"], optional = true }
# glue (js)
napi = { version = "2.16", features = ["full"], optional = true }
napi-derive = { version="2.16", optional = true}
# glue (python)
pyo3 = { version = "0.22", features = ["extension-module"], optional = true}
# extra
async-trait = { version = "0.1", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
[build-dependencies]
# glue (js)
napi-build = { version = "2.1", optional = true }
# glue (python)
pyo3-build-config = { version = "0.22", optional = true }
[features]
default = []
# extra
async-trait = ["dep:async-trait"]
serialize = ["dep:serde", "uuid/serde"]
# ffi
rust = [] # used for ci matrix
java = ["lazy_static", "jni", "tracing-subscriber"]
js = ["napi-build", "tracing-subscriber", "napi", "napi-derive"]
py-noabi = ["pyo3", "tracing-subscriber", "pyo3-build-config"]
py = ["py-noabi", "pyo3/abi3-py38"]
lua = ["mlua-codemp-patch", "tracing-subscriber", "lazy_static", "serialize"]
lua54 =["lua", "mlua-codemp-patch/lua54"]
luajit = ["lua", "mlua-codemp-patch/luajit"]
[package.metadata.docs.rs] # enabled features when building on docs.rs
features = ["serialize"]