Intial Commit of starworld
This commit is contained in:
47
CMakeLists.txt
Normal file
47
CMakeLists.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
project(stardust-overte-client LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
option(USE_OVERTE_SDK "Link against Overte SDK if available" OFF)
|
||||
option(USE_STARDUST_SDK "Link against StardustXR SDK if available" OFF)
|
||||
|
||||
find_package(glm REQUIRED)
|
||||
|
||||
add_executable(stardust-overte-client
|
||||
src/main.cpp
|
||||
src/StardustBridge.cpp
|
||||
src/OverteClient.cpp
|
||||
src/SceneSync.cpp
|
||||
src/InputHandler.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(stardust-overte-client PRIVATE glm::glm)
|
||||
|
||||
if(USE_OVERTE_SDK)
|
||||
find_package(Overte QUIET)
|
||||
if(Overte_FOUND)
|
||||
target_link_libraries(stardust-overte-client PRIVATE Overte::Networking)
|
||||
target_compile_definitions(stardust-overte-client PRIVATE HAVE_OVERTE_SDK=1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(USE_STARDUST_SDK)
|
||||
find_package(StardustXR QUIET)
|
||||
if(StardustXR_FOUND)
|
||||
target_link_libraries(stardust-overte-client PRIVATE StardustXR::Client)
|
||||
target_compile_definitions(stardust-overte-client PRIVATE HAVE_STARDUST_SDK=1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Optional: try to locate a prebuilt Rust bridge shared library at runtime using RPATH hints
|
||||
if(NOT DEFINED STARWORLD_BRIDGE_PATH)
|
||||
set(STARWORLD_BRIDGE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bridge/target/debug" CACHE PATH "Path to Rust bridge .so/.dylib directory")
|
||||
endif()
|
||||
if(EXISTS "${STARWORLD_BRIDGE_PATH}")
|
||||
# Add to rpath so dlopen without full path can find it
|
||||
set_target_properties(stardust-overte-client PROPERTIES
|
||||
BUILD_RPATH "${STARWORLD_BRIDGE_PATH}"
|
||||
INSTALL_RPATH "${STARWORLD_BRIDGE_PATH}")
|
||||
endif()
|
||||
26
README.md
Normal file
26
README.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Starworld (StardustXR + Overte client)
|
||||
|
||||
## Rust bridge (optional)
|
||||
This project can load a Rust bridge shared library exposing a C ABI to the StardustXR client. Build it with:
|
||||
|
||||
```bash
|
||||
cd bridge
|
||||
cargo build
|
||||
```
|
||||
|
||||
This produces `bridge/target/debug/libstardust_bridge.so`. The app will try to load it automatically at startup. You can also set an explicit path:
|
||||
|
||||
```bash
|
||||
export STARWORLD_BRIDGE_PATH=./bridge/target/debug/libstardust_bridge.so
|
||||
```
|
||||
|
||||
If the bridge is not present, the app falls back to a stub and (previously) attempted raw sockets; with the bridge present it will initialize via the official client crates.
|
||||
|
||||
## Overte
|
||||
Overte connectivity is optional; if unreachable, the client runs in offline mode and logs a warning.
|
||||
|
||||
## CLI
|
||||
- `--socket=/path/to.sock` (legacy attempt)
|
||||
- `--abstract=name` (legacy abstract socket attempt)
|
||||
|
||||
Prefer using the Rust bridge.
|
||||
3561
bridge/Cargo.lock
generated
Normal file
3561
bridge/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
27
bridge/Cargo.toml
Normal file
27
bridge/Cargo.toml
Normal file
@@ -0,0 +1,27 @@
|
||||
[package]
|
||||
name = "stardust_bridge"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
name = "stardust_bridge"
|
||||
crate-type = ["cdylib"]
|
||||
|
||||
[dependencies]
|
||||
tokio = { version = "1.38", features = ["rt", "macros"] }
|
||||
glam = "0.28"
|
||||
lazy_static = "1.4"
|
||||
zbus = { version = "5.5.0", features = ["tokio"] }
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
|
||||
[dependencies.stardust-xr-asteroids]
|
||||
git = "https://github.com/StardustXR/asteroids.git"
|
||||
branch = "dev"
|
||||
|
||||
[dependencies.stardust-xr-fusion]
|
||||
git = "https://github.com/StardustXR/core.git"
|
||||
branch = "dev"
|
||||
|
||||
[features]
|
||||
# Feature enabling real StardustXR integration when crates are present.
|
||||
real = []
|
||||
144
bridge/src/lib.rs
Normal file
144
bridge/src/lib.rs
Normal file
@@ -0,0 +1,144 @@
|
||||
// Rust C-ABI bridge for StardustXR client integration.
|
||||
|
||||
use std::ffi::CStr;
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
use std::sync::Mutex;
|
||||
use std::thread::JoinHandle;
|
||||
|
||||
use glam::Mat4;
|
||||
use stardust_xr_asteroids as ast; // alias for brevity
|
||||
use stardust_xr_asteroids::{
|
||||
client::ClientState,
|
||||
elements::PlaySpace,
|
||||
Migrate, Reify,
|
||||
CustomElement, Element,
|
||||
};
|
||||
use tokio::runtime::Runtime;
|
||||
|
||||
#[derive(Default, serde::Serialize, serde::Deserialize)]
|
||||
struct BridgeState {}
|
||||
|
||||
enum Command {
|
||||
Create { c_id: u64, name: String, transform: Mat4 },
|
||||
Update { c_id: u64, transform: Mat4 },
|
||||
Shutdown,
|
||||
}
|
||||
|
||||
impl Migrate for BridgeState { type Old = Self; }
|
||||
|
||||
impl ClientState for BridgeState {
|
||||
const APP_ID: &'static str = "org.stardustxr.starworld";
|
||||
fn initial_state_update(&mut self) {}
|
||||
}
|
||||
|
||||
impl Reify for BridgeState {
|
||||
fn reify(&self) -> impl ast::Element<Self> {
|
||||
// Root playspace. We attach our dynamic nodes under this.
|
||||
PlaySpace.build()
|
||||
}
|
||||
}
|
||||
|
||||
static STARTED: AtomicBool = AtomicBool::new(false);
|
||||
lazy_static::lazy_static! {
|
||||
static ref CTRL: Mutex<Ctrl> = Mutex::new(Ctrl::default());
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
struct Ctrl {
|
||||
rt: Option<Runtime>,
|
||||
handle: Option<JoinHandle<()>>, // client running thread
|
||||
tx: Option<tokio::sync::mpsc::UnboundedSender<Command>>,
|
||||
next_id: u64,
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn sdxr_start(app_id: *const std::os::raw::c_char) -> i32 {
|
||||
if STARTED.swap(true, Ordering::SeqCst) { return 0; }
|
||||
let name = unsafe { CStr::from_ptr(app_id) }.to_string_lossy().to_string();
|
||||
|
||||
let mut ctrl = CTRL.lock().unwrap();
|
||||
ctrl.next_id = 1;
|
||||
let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel::<Command>();
|
||||
ctrl.tx = Some(tx.clone());
|
||||
|
||||
// Build a single-threaded Tokio runtime for the client
|
||||
let rt = tokio::runtime::Builder::new_current_thread()
|
||||
.enable_all()
|
||||
.build()
|
||||
.expect("tokio runtime");
|
||||
let handle = std::thread::spawn(move || {
|
||||
let res = rt.block_on(async move {
|
||||
// Run the client with our BridgeState
|
||||
let _state = BridgeState {};
|
||||
|
||||
// Launch a task to apply incoming commands once the client is up
|
||||
let cmd_task = tokio::spawn(async move {
|
||||
// This is a placeholder; in a full implementation we would
|
||||
// hold references to created nodes. For now we simply drain.
|
||||
while let Some(cmd) = rx.recv().await {
|
||||
match cmd {
|
||||
Command::Create { .. } => {}
|
||||
Command::Update { .. } => {}
|
||||
Command::Shutdown => break,
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
ast::client::run::<BridgeState>(&[]).await;
|
||||
// Ensure command task ends
|
||||
let _ = cmd_task.await;
|
||||
});
|
||||
drop(rt);
|
||||
let _ = res;
|
||||
STARTED.store(false, Ordering::SeqCst);
|
||||
});
|
||||
|
||||
ctrl.rt = None; // runtime consumed inside thread
|
||||
ctrl.handle = Some(handle);
|
||||
0
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn sdxr_poll() -> i32 {
|
||||
if !STARTED.load(Ordering::SeqCst) { return -1; }
|
||||
0
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn sdxr_shutdown() {
|
||||
let mut ctrl = CTRL.lock().unwrap();
|
||||
if let Some(tx) = ctrl.tx.take() {
|
||||
let _ = tx.send(Command::Shutdown);
|
||||
}
|
||||
if let Some(h) = ctrl.handle.take() {
|
||||
let _ = h.join();
|
||||
}
|
||||
STARTED.store(false, Ordering::SeqCst);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn sdxr_create_node(name: *const std::os::raw::c_char, mat4: *const f32) -> u64 {
|
||||
if !STARTED.load(Ordering::SeqCst) { return 0; }
|
||||
let name = unsafe { CStr::from_ptr(name) }.to_string_lossy().to_string();
|
||||
let m = unsafe { std::slice::from_raw_parts(mat4, 16) };
|
||||
let mut arr = [0.0f32; 16];
|
||||
arr.copy_from_slice(m);
|
||||
let mat = Mat4::from_cols_array(&arr);
|
||||
|
||||
let mut ctrl = CTRL.lock().unwrap();
|
||||
let c_id = ctrl.next_id; ctrl.next_id += 1;
|
||||
if let Some(tx) = &ctrl.tx { let _ = tx.send(Command::Create { c_id, name, transform: mat }); }
|
||||
c_id
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn sdxr_update_node(id: u64, mat4: *const f32) -> i32 {
|
||||
if !STARTED.load(Ordering::SeqCst) { return -1; }
|
||||
let m = unsafe { std::slice::from_raw_parts(mat4, 16) };
|
||||
let mut arr = [0.0f32; 16];
|
||||
arr.copy_from_slice(m);
|
||||
let mat = Mat4::from_cols_array(&arr);
|
||||
let ctrl = CTRL.lock().unwrap();
|
||||
if let Some(tx) = &ctrl.tx { let _ = tx.send(Command::Update { c_id: id, transform: mat }); }
|
||||
0
|
||||
}
|
||||
1
bridge/target/.rustc_info.json
Normal file
1
bridge/target/.rustc_info.json
Normal file
@@ -0,0 +1 @@
|
||||
{"rustc_fingerprint":11816446182709861372,"outputs":{"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.90.0 (1159e78c4 2025-09-14) (Arch Linux rust 1:1.90.0-4)\nbinary: rustc\ncommit-hash: 1159e78c4747b02ef996e55082b704c09b970588\ncommit-date: 2025-09-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.90.0\nLLVM version: 21.1.3\n","stderr":""},"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/usr\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""}},"successes":{}}
|
||||
3
bridge/target/CACHEDIR.TAG
Normal file
3
bridge/target/CACHEDIR.TAG
Normal file
@@ -0,0 +1,3 @@
|
||||
Signature: 8a477f597d28d172789f06886806bc55
|
||||
# This file is a cache directory tag created by cargo.
|
||||
# For information about cache directory tags see https://bford.info/cachedir/
|
||||
0
bridge/target/debug/.cargo-lock
Normal file
0
bridge/target/debug/.cargo-lock
Normal file
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
4e501feec971d980
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[\"all\", \"alloc\", \"bin\", \"cargo-all\", \"core\", \"cpp_demangle\", \"default\", \"fallible-iterator\", \"loader\", \"rustc-demangle\", \"rustc-dep-of-std\", \"smallvec\", \"std\", \"wasm\"]","target":7709716332375371761,"profile":15657897354478470176,"path":7647808470085001035,"deps":[[18122473562710263097,"gimli",false,7808816618697719735]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/addr2line-a3a4919e88ec45be/dep-lib-addr2line","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
59e6ed087e67a93d
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[\"core\", \"default\", \"rustc-dep-of-std\", \"std\"]","target":6569825234462323107,"profile":15657897354478470176,"path":18086088507269448290,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/adler2-1934075ff2462404/dep-lib-adler2","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
48c5171d56c4c998
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[\"alloc\", \"default\"]","declared_features":"[\"aliasable_deref_trait\", \"alloc\", \"default\", \"stable_deref_trait\", \"traits\"]","target":15847475180453389523,"profile":15657897354478470176,"path":10056249817138356204,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/aliasable-4dd5fbd33d272db0/dep-lib-aliasable","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
25404578b1f95371
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[\"simba\"]","target":3257371134836385991,"profile":15657897354478470176,"path":178766833481243506,"deps":[[3051629642231505422,"serde_derive",false,14477585066553127082],[5157631553186200874,"num_traits",false,13038252780479146200],[13548984313718623784,"serde",false,2185070628536442922]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/angle-5b496b25d8f4eff9/dep-lib-angle","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
034a59eafbb2cf1a
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[\"auto\", \"default\", \"wincon\"]","declared_features":"[\"auto\", \"default\", \"test\", \"wincon\"]","target":11278316191512382530,"profile":3165698828628978241,"path":17858651550948382332,"deps":[[384403243491392785,"colorchoice",false,1088998281196534042],[7483871650937086505,"anstyle",false,18386102579533746561],[7727459912076845739,"is_terminal_polyfill",false,3359616509356997139],[11410867133969439143,"anstyle_parse",false,8478160726685443714],[17716308468579268865,"utf8parse",false,3632039831491964031],[18321257514705447331,"anstyle_query",false,12500128015499854233]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/anstream-f383fb6f62eb2c45/dep-lib-anstream","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
819100e1e18e28ff
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\"]","target":6165884447290141869,"profile":3165698828628978241,"path":15006572070195020144,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/anstyle-f4b5368fa581b743/dep-lib-anstyle","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
82e6c0fe427aa875
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[\"default\", \"utf8\"]","declared_features":"[\"core\", \"default\", \"utf8\"]","target":10225663410500332907,"profile":3165698828628978241,"path":11586109889492814127,"deps":[[17716308468579268865,"utf8parse",false,3632039831491964031]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/anstyle-parse-796bd222b2931dff/dep-lib-anstyle_parse","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
9901c79a336079ad
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[]","target":10705714425685373190,"profile":3165698828628978241,"path":8189565777764859403,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/anstyle-query-1cbc0f6568fcb393/dep-lib-anstyle_query","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
0aa02fbdc4c5b23b
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[\"default\", \"std\"]","declared_features":"[\"backtrace\", \"default\", \"std\"]","target":16100955855663461252,"profile":15657897354478470176,"path":13311298457841982209,"deps":[[1852463361802237065,"build_script_build",false,18100924954085084040]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/anyhow-48226e973df3ed8d/dep-lib-anyhow","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
@@ -0,0 +1 @@
|
||||
82e7a41595588c45
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[\"default\", \"std\"]","declared_features":"[\"backtrace\", \"default\", \"std\"]","target":17883862002600103897,"profile":2225463790103693989,"path":1146898412914289970,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/anyhow-5a30a1ed7dd2abff/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
88cb3eca576733fb
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[1852463361802237065,"build_script_build",false,5011477882693019522]],"local":[{"RerunIfChanged":{"output":"debug/build/anyhow-ee84c8783e87867f/output","paths":["src/nightly.rs"]}},{"RerunIfEnvChanged":{"var":"RUSTC_BOOTSTRAP","val":null}}],"rustflags":[],"config":0,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
ea0f951c499b830b
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[\"default\", \"tokio\"]","declared_features":"[\"async-std\", \"async-trait\", \"backend\", \"default\", \"gdk4wayland\", \"gdk4x11\", \"glib\", \"gtk4\", \"gtk4_wayland\", \"gtk4_x11\", \"pipewire\", \"raw-window-handle\", \"raw_handle\", \"tokio\", \"tracing\", \"wayland\", \"wayland-backend\", \"wayland-client\", \"wayland-protocols\"]","target":11354417300039941904,"profile":15657897354478470176,"path":10204622539883302550,"deps":[[1811549171721445101,"futures_channel",false,6619738903689083204],[2296808602508110334,"enumflags2",false,17996164993442138288],[5404511084185685755,"url",false,851456790979596837],[7720834239451334583,"tokio",false,1842788324647578197],[10629569228670356391,"futures_util",false,9282862531210654350],[12285238697122577036,"fastrand",false,9210219821070169210],[12986574360607194341,"serde_repr",false,9021457436099322411],[13548984313718623784,"serde",false,2185070628536442922],[17480049153456970166,"zbus",false,3541285628631035754]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ashpd-07a399fa80978be3/dep-lib-ashpd","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
b85dc4c18d09fa2c
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[]","target":2036009427692311091,"profile":15657897354478470176,"path":10611894968951263758,"deps":[[1906322745568073236,"pin_project_lite",false,596650751731562962],[7620660491849607393,"futures_core",false,10436396473798243210],[14474722528862052230,"event_listener",false,10865166329520264099],[17148897597675491682,"event_listener_strategy",false,17009704660863122472]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-broadcast-9b9c15d053ca20ed/dep-lib-async_broadcast","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
0ad138bb89a8054f
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[]","target":2036009427692311091,"profile":15657897354478470176,"path":10611894968951263758,"deps":[[1906322745568073236,"pin_project_lite",false,596650751731562962],[7620660491849607393,"futures_core",false,10436396473798243210],[14474722528862052230,"event_listener",false,8539923832979633004],[17148897597675491682,"event_listener_strategy",false,6840206983937084727]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-broadcast-a21f765c8a0a1258/dep-lib-async_broadcast","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
00d9704d707b3078
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"portable-atomic\", \"std\"]","target":2348331682808714104,"profile":15657897354478470176,"path":2743360032888609041,"deps":[[1906322745568073236,"pin_project_lite",false,596650751731562962],[7620660491849607393,"futures_core",false,10436396473798243210],[12100481297174703255,"concurrent_queue",false,7734918266569387503],[17148897597675491682,"event_listener_strategy",false,17009704660863122472]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-channel-0b123fe8cd7cd20d/dep-lib-async_channel","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
78e8c79fdf900270
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[\"static\"]","target":7483652822946339806,"profile":15657897354478470176,"path":884554007555738654,"deps":[[867502981669738401,"async_task",false,13985889959547697642],[1906322745568073236,"pin_project_lite",false,596650751731562962],[9090520973410485560,"futures_lite",false,3556957548433683880],[12100481297174703255,"concurrent_queue",false,7734918266569387503],[12285238697122577036,"fastrand",false,9210219821070169210],[14767213526276824509,"slab",false,3660309457305945264]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-executor-e0d003d228a5cf6e/dep-lib-async_executor","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
@@ -0,0 +1 @@
|
||||
6a2eadcf45358e3b
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[\"tracing\"]","target":5408242616063297496,"profile":4831801323318853768,"path":16426099440578055056,"deps":[[13927012481677012980,"autocfg",false,16109880225606511582]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-io-23fc3fd859592edd/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
da1b4ec5eb753536
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[\"tracing\"]","target":10084595033463382892,"profile":17582455124764123298,"path":11705651458602858485,"deps":[[5103565458935487,"futures_io",false,4408976576576185659],[189982446159473706,"parking",false,2104277969534593768],[7667230146095136825,"cfg_if",false,990839103339692650],[9090520973410485560,"futures_lite",false,3556957548433683880],[12100481297174703255,"concurrent_queue",false,7734918266569387503],[13228232576020724592,"rustix",false,10085233709182214859],[14271827750077741315,"polling",false,10788923780888233485],[14767213526276824509,"slab",false,3660309457305945264],[15550619062825872913,"build_script_build",false,13273675949933878140]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-io-ae404d2dff007be6/dep-lib-async_io","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
@@ -0,0 +1 @@
|
||||
7c5b7413f39135b8
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[15550619062825872913,"build_script_build",false,4291426068883910250]],"local":[{"Precalculated":"2.6.0"}],"rustflags":[],"config":0,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
d8b47f7c1eb75c49
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"loom\", \"std\"]","target":4686383084901058664,"profile":5585765287293540646,"path":2336521268336113222,"deps":[[1906322745568073236,"pin_project_lite",false,596650751731562962],[14474722528862052230,"event_listener",false,10865166329520264099],[17148897597675491682,"event_listener_strategy",false,17009704660863122472]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-lock-c825c11cac6f146d/dep-lib-async_lock","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
b5003084c79a4336
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[\"tracing\"]","target":5244141512695498248,"profile":17896378377712516460,"path":10899822969872400452,"deps":[[867502981669738401,"async_task",false,13985889959547697642],[6633419628244209595,"async_channel",false,8660557805699258624],[7667230146095136825,"cfg_if",false,990839103339692650],[9090520973410485560,"futures_lite",false,3556957548433683880],[12242051386246275266,"async_signal",false,16648485002591619248],[13228232576020724592,"rustix",false,10085233709182214859],[14474722528862052230,"event_listener",false,10865166329520264099],[14660869117855173827,"async_lock",false,5286301404191765720],[15550619062825872913,"async_io",false,3906157907301768154]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-process-7b6eeacc0f5e5fbf/dep-lib-async_process","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
b048e403e74c0be7
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[]","target":13457527684222555971,"profile":15657897354478470176,"path":9856700530082582402,"deps":[[5103565458935487,"futures_io",false,4408976576576185659],[7620660491849607393,"futures_core",false,10436396473798243210],[7667230146095136825,"cfg_if",false,990839103339692650],[13222146701209602257,"signal_hook_registry",false,16540912842868744325],[13228232576020724592,"rustix",false,10085233709182214859],[15550619062825872913,"async_io",false,3906157907301768154]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-signal-200be69b88b525d1/dep-lib-async_signal","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
af93bc882ffa4052
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[]","target":7636188372161476255,"profile":15657897354478470176,"path":3954705557389817374,"deps":[[1906322745568073236,"pin_project_lite",false,596650751731562962],[7410208549481828251,"async_stream_impl",false,6622952458473558084],[7620660491849607393,"futures_core",false,10436396473798243210]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-stream-2706c4eea3c2a0f9/dep-lib-async_stream","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
||||
@@ -0,0 +1 @@
|
||||
44d09dcb2b74e95b
|
||||
@@ -0,0 +1 @@
|
||||
{"rustc":17921773896214356806,"features":"[]","declared_features":"[]","target":1942159639416563378,"profile":2225463790103693989,"path":11241314630749714923,"deps":[[9869581871423326951,"quote",false,1170833906296924056],[10297838208399422065,"syn",false,15566389537850086562],[14285738760999836560,"proc_macro2",false,13916629306092687294]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-stream-impl-9be44415f76aba44/dep-lib-async_stream_impl","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user