Skip to content

Commit b1c9d0d

Browse files
committed
entrace_core: strip dependencies, 0.1.1 -> 0.1.2
the fully removed dependencies are still pulled in transitively, but not explicitly, except for crossbeam, which is gone except for channel. this should reduce compile time of an empty project with just entrace_core as a dependency from ~6.5s to ~4.7s
1 parent 8633c1b commit b1c9d0d

File tree

10 files changed

+36
-63
lines changed

10 files changed

+36
-63
lines changed

Cargo.lock

Lines changed: 4 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

entrace_core/Cargo.toml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,20 @@
11
[package]
22
name = "entrace_core"
33
description = "client library for ENTRACE, a modern log viewer and observability toolkit for Rust"
4-
version = "0.1.1"
4+
version = "0.1.2"
55
edition = "2024"
66
license = "MIT OR Apache-2.0"
77
repository = "https://github.com/algorithmiker/entrace"
88
categories = ["development-tools::debugging"]
9+
910
[dependencies]
1011
bincode = { version = "2.0.1", features = ["serde"] }
11-
crossbeam = "0.8.4"
12-
derive_more = { version = "2.0.1", features = ["display"] }
12+
crossbeam-channel = "0.5.15"
1313
memmap2 = {version = "0.9.7", optional = true }
14-
mio = { version = "1.0.3", features = ["os-poll", "net"] }
1514
notify = {version = "8.1.0", optional = true }
16-
# free because tracing-subscriber already pulls it in
17-
nu-ansi-term = "0.50.1"
1815
serde = { version = "1.0.219", features = ["derive"] }
1916
thiserror = "2.0.12"
20-
tracing = "0.1.41"
17+
tracing = { version = "0.1.41", default-features = false }
2118
tracing-subscriber = "0.3.19"
2219

2320
[dev-dependencies]

entrace_core/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ impl Default for IETLoadConfig {
238238
}
239239

240240
pub struct IETPresentationConfig<R: Refresh = DummyRefresher> {
241-
pub event_tx: Option<crossbeam::channel::Sender<IETEvent>>,
241+
pub event_tx: Option<crossbeam_channel::Sender<IETEvent>>,
242242
pub refresher: R,
243243
}
244244
impl Default for IETPresentationConfig {
@@ -247,7 +247,7 @@ impl Default for IETPresentationConfig {
247247
}
248248
}
249249
impl<R: Refresh> IETPresentationConfig<R> {
250-
pub fn new(event_tx: Option<crossbeam::channel::Sender<IETEvent>>, refresher: R) -> Self {
250+
pub fn new(event_tx: Option<crossbeam_channel::Sender<IETEvent>>, refresher: R) -> Self {
251251
Self { event_tx, refresher }
252252
}
253253
}

entrace_core/src/mmap/et_storage.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@ pub trait FileLike: Read + Write + Seek {}
4343
impl<T: Read + Write + Seek> FileLike for T {}
4444
pub type ETResult<A, T> = Result<A, ETStorageError<T>>;
4545
pub struct ETStorage<T: FileLike, Q: FileLike + Send> {
46-
pub sender: crossbeam::channel::Sender<Message<Q>>,
46+
pub sender: crossbeam_channel::Sender<Message<Q>>,
4747
pub thread_handle: RwLock<Option<JoinHandle<ETResult<ETShutdownValue<T, Q>, T>>>>,
4848
}
4949
impl<T: FileLike + Send + 'static, Q: FileLike + Send + 'static> ETStorage<T, Q> {
5050
pub fn init(mut file: T) -> Self
5151
where
5252
Self: std::marker::Sized,
5353
{
54-
let (tx, rx) = crossbeam::channel::unbounded::<Message<Q>>();
54+
let (tx, rx) = crossbeam_channel::unbounded::<Message<Q>>();
5555
let thread_handle = std::thread::spawn(move || {
5656
let magic = entrace_magic_for(1, crate::StorageFormat::IET);
5757
file.write_all(&magic).unwrap();

entrace_core/src/remote/file_iet_log_provider.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use std::{
1111
};
1212

1313
use bincode::error::DecodeError;
14-
use crossbeam::channel::Sender;
14+
use crossbeam_channel::Sender;
1515
use tracing::trace;
1616
use tracing::{error, info};
1717

@@ -139,7 +139,7 @@ impl FileIETLogProvider {
139139
{
140140
if let Some(etx) = &config2.event_tx {
141141
use crate::remote::IETEvent;
142-
etx.send(IETEvent::Error(FileIETError::NeedNotify.into()));
142+
etx.send(IETEvent::Error(FileIETError::NeedNotify.into())).ok();
143143
}
144144
return;
145145
}

entrace_core/src/remote/mod.rs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
use std::{thread::JoinHandle, time::Duration};
1+
use std::{fmt::Display, thread::JoinHandle, time::Duration};
22

33
use crate::{
44
Header, IETPresentationConfig, LevelContainer, MetadataRefContainer, PoolEntry, TraceEntry,
55
log_provider::{LogProvider, LogProviderError, LogProviderResult},
66
tree_layer::EnValueRef,
77
};
8-
use crossbeam::channel::{Receiver, Sender};
8+
use crossbeam_channel::{Receiver, Sender};
99

1010
mod file_iet_log_provider;
1111
pub use file_iet_log_provider::*;
@@ -14,15 +14,21 @@ pub use remote_storage::*;
1414
mod remote_log_provider;
1515
pub use remote_log_provider::*;
1616

17-
#[derive(derive_more::Display)]
1817
pub enum IETInfo {
19-
#[display("Server started, waiting for connections")]
2018
ServerStarted,
21-
#[display("Received connection")]
2219
ReceivedConnection,
23-
#[display("Remote client closed connection")]
2420
RemoteClosedConnection,
2521
}
22+
impl Display for IETInfo {
23+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
24+
match self {
25+
IETInfo::ServerStarted => write!(f, "Server started, waiting for connections"),
26+
IETInfo::ReceivedConnection => write!(f, "Received connection"),
27+
IETInfo::RemoteClosedConnection => write!(f, "Remote client closed connection"),
28+
}
29+
}
30+
}
31+
2632
pub enum IETEvent {
2733
Error(LogProviderError),
2834
Info(IETInfo),
@@ -55,7 +61,7 @@ impl BaseIETLogProvider {
5561
// Notifier: Notify + Send + 'static,
5662
// Refresher: Refresh + Send + 'static,
5763
{
58-
let (tx, rx) = crossbeam::channel::unbounded();
64+
let (tx, rx) = crossbeam_channel::unbounded();
5965
let handle = std::thread::spawn(move || worker_thread(buf, tx, config));
6066
// no root data entry here, the client has to send it.
6167
Self { handle, receiver: rx, pool: vec![], data: vec![] }
@@ -134,8 +140,8 @@ impl LogProvider for BaseIETLogProvider {
134140
}
135141
}
136142
Err(y) => match y {
137-
crossbeam::channel::TryRecvError::Empty => (),
138-
crossbeam::channel::TryRecvError::Disconnected => (),
143+
crossbeam_channel::TryRecvError::Empty => (),
144+
crossbeam_channel::TryRecvError::Disconnected => (),
139145
},
140146
}
141147
}

entrace_core/src/remote/remote_log_provider.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ use crate::{
1313
log_provider::{LogProvider, LogProviderResult},
1414
remote::{BaseIETLogProvider, MainThreadMessage, Refresh},
1515
};
16-
use crossbeam::channel::Sender;
16+
use crossbeam_channel::Sender;
1717

1818
enum ReadState {
1919
WantMagic,
2020
WantMessage,
2121
}
2222

2323
struct RemoteWorkerState<'a, R: Refresh> {
24-
event_tx: Option<crossbeam::channel::Sender<IETEvent>>,
24+
event_tx: Option<crossbeam_channel::Sender<IETEvent>>,
2525
refresher: R,
2626
reader: BufReader<&'a mut TcpStream>,
2727
tx: Sender<MainThreadMessage>,
@@ -31,7 +31,7 @@ struct RemoteWorkerState<'a, R: Refresh> {
3131
}
3232
impl<'a, R: Refresh> RemoteWorkerState<'a, R> {
3333
pub fn new(
34-
event_tx: Option<crossbeam::channel::Sender<IETEvent>>, refresher: R,
34+
event_tx: Option<crossbeam_channel::Sender<IETEvent>>, refresher: R,
3535
reader: BufReader<&'a mut TcpStream>, tx: Sender<MainThreadMessage>, read_state: ReadState,
3636
) -> RemoteWorkerState<'a, R> {
3737
Self {

entrace_core/src/remote/remote_storage.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::{StorageFormat, TraceEntry, entrace_magic_for, storage::Storage, tree_layer::EnValue};
2-
use crossbeam::channel::{SendError, Sender};
2+
use crossbeam_channel::{SendError, Sender};
33
use std::{any::Any, io::Write, sync::RwLock, thread::JoinHandle};
44

55
pub enum RemoteMessage {
@@ -40,7 +40,7 @@ pub struct IETStorage<T: Write + Send + 'static> {
4040
}
4141
impl<T: Write + Send + 'static> IETStorage<T> {
4242
pub fn init(mut config: IETStorageConfig<T>) -> Self {
43-
let (tx, rx) = crossbeam::channel::unbounded();
43+
let (tx, rx) = crossbeam_channel::unbounded();
4444
let format =
4545
if config.length_prefixed { StorageFormat::IETPrefix } else { StorageFormat::IET };
4646
let thread_handle = std::thread::spawn(move || {

example/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "entrace_example"
3-
version = "0.1.1"
3+
version = "0.1.2"
44
edition = "2021"
55
license = "MIT OR Apache-2.0"
66

gui/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "entrace_gui"
3-
version = "0.1.1"
3+
version = "0.1.2"
44
edition = "2024"
55
license = "(MIT OR Apache-2.0) AND OFL-1.1"
66

0 commit comments

Comments
 (0)