turbopack_trace_server/
lib.rs

1#![feature(iter_intersperse)]
2#![feature(box_patterns)]
3#![feature(bufreader_peek)]
4
5use std::{hash::BuildHasherDefault, path::PathBuf, sync::Arc};
6
7use rustc_hash::FxHasher;
8
9use self::{reader::TraceReader, server::serve, store_container::StoreContainer};
10
11mod bottom_up;
12mod reader;
13mod self_time_tree;
14mod server;
15mod span;
16mod span_bottom_up_ref;
17mod span_graph_ref;
18mod span_ref;
19mod store;
20mod store_container;
21mod string_tuple_ref;
22mod timestamp;
23mod u64_empty_string;
24mod u64_string;
25mod viewer;
26
27#[allow(
28    dead_code,
29    reason = "It's actually used, not sure why it is marked as dead code"
30)]
31type FxIndexMap<K, V> = indexmap::IndexMap<K, V, BuildHasherDefault<FxHasher>>;
32
33pub fn start_turbopack_trace_server(path: PathBuf, port: Option<u16>) {
34    let store = Arc::new(StoreContainer::new());
35    let reader = TraceReader::spawn(store.clone(), path);
36
37    serve(store, port.unwrap_or(5747));
38
39    reader.join().unwrap();
40}