Skip to content

Commit 3f54d17

Browse files
committed
build: add a feature writers-and-readers, so we can import only the types in some cases
1 parent b549fe7 commit 3f54d17

File tree

3 files changed

+36
-8
lines changed

3 files changed

+36
-8
lines changed

runtime_tracing/Cargo.toml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "runtime_tracing"
3-
version = "0.15.0"
3+
version = "0.16.0"
44
edition = "2024"
55
authors = ["Metacraft Labs Ltd"]
66
description = "A library for the schema and tracing helpers for the CodeTracer db trace format"
@@ -20,19 +20,25 @@ serde = { version = "1.0", features = ["derive"] }
2020
serde_json = "1.0"
2121
serde_repr = "0.1"
2222
schemars = "0.8.2"
23-
capnp = "0.21.1"
24-
cbor4ii = { version = "1.0.0", features = ["serde1", "use_std"] }
25-
fscommon = "0.1.1"
23+
capnp = { version = "0.21.1", optional = true }
24+
cbor4ii = { version = "1.0.0", features = ["serde1", "use_std"], optional = true }
25+
fscommon = { version = "0.1.1", optional = true }
2626

2727
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
28-
zeekstd = "0.6.0"
28+
zeekstd = { version = "0.6.0", optional = true }
2929

3030
[target.'cfg(target_arch = "wasm32")'.dependencies]
31-
ruzstd = "0.8.1"
31+
ruzstd = { version = "0.8.1", optional = true }
3232

3333
[build-dependencies]
34-
capnpc = "0.21.0"
34+
capnpc = { version = "0.21.0", optional = true }
3535

3636
[lib]
3737
name = "runtime_tracing"
3838
path = "src/lib.rs"
39+
40+
[features]
41+
writers_and_readers = ["dep:capnp", "dep:cbor4ii", "dep:fscommon", "dep:zeekstd", "dep:ruzstd", "dep:capnpc"]
42+
# to disable the default features, a dependency must use: `default-features = false ` !
43+
# https://doc.rust-lang.org/cargo/reference/features.html
44+
default = ["writers_and_readers"]

runtime_tracing/build.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
fn main() {
2+
#[cfg(feature = "writers_and_readers")]
23
::capnpc::CompilerCommand::new().file("src/trace.capnp").run().expect("compiling schema")
34
}

runtime_tracing/src/lib.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,38 +8,59 @@
88
//! This crate provides the [`Tracer`] type for emitting trace events and a
99
//! collection of serializable structures describing the trace format.
1010
//! The format is documented in `docs/` and the README.
11+
12+
#[cfg(feature = "writers_and_readers")]
1113
mod abstract_trace_writer;
1214
mod base64;
15+
#[cfg(feature = "writers_and_readers")]
1316
mod capnptrace;
1417

18+
#[cfg(feature = "writers_and_readers")]
1519
#[cfg(target_arch = "wasm32")]
1620
#[path = "./cbor_zstd_reader_wasm.rs"]
1721
mod cbor_zstd_reader;
22+
#[cfg(feature = "writers_and_readers")]
1823
#[cfg(target_arch = "wasm32")]
1924
#[path = "./cbor_zstd_writer_wasm.rs"]
2025
mod cbor_zstd_writer;
2126

2227
#[cfg(not(target_arch = "wasm32"))]
28+
#[cfg(feature = "writers_and_readers")]
2329
mod cbor_zstd_reader;
2430
#[cfg(not(target_arch = "wasm32"))]
31+
#[cfg(feature = "writers_and_readers")]
2532
mod cbor_zstd_writer;
2633

34+
#[cfg(feature = "writers_and_readers")]
2735
mod non_streaming_trace_writer;
36+
#[cfg(feature = "writers_and_readers")]
2837
mod trace_readers;
38+
#[cfg(feature = "writers_and_readers")]
2939
mod trace_writer;
40+
#[cfg(feature = "writers_and_readers")]
3041
mod tracer;
42+
43+
// enabled always!
3144
mod types;
3245

46+
#[cfg(feature = "writers_and_readers")]
3347
pub use crate::non_streaming_trace_writer::NonStreamingTraceWriter;
48+
#[cfg(feature = "writers_and_readers")]
3449
pub use crate::trace_readers::TraceReader;
50+
#[cfg(feature = "writers_and_readers")]
3551
pub use crate::trace_writer::TraceWriter;
36-
pub use crate::tracer::{NONE_TYPE_ID, NONE_VALUE, TraceEventsFileFormat, create_trace_reader, create_trace_writer};
52+
#[cfg(feature = "writers_and_readers")]
53+
pub use crate::tracer::{create_trace_reader, create_trace_writer, TraceEventsFileFormat, NONE_TYPE_ID, NONE_VALUE};
54+
55+
// enabled always!
3756
pub use crate::types::*;
3857

58+
#[cfg(feature = "writers_and_readers")]
3959
pub mod trace_capnp {
4060
include!(concat!(env!("OUT_DIR"), "/src/trace_capnp.rs"));
4161
}
4262

63+
#[cfg(feature = "writers_and_readers")]
4364
#[cfg(test)]
4465
mod tests {
4566
use super::*;

0 commit comments

Comments
 (0)