P1f: self-contained Tauri host; complete P1
This commit is contained in:
Generated
+903
-9
File diff suppressed because it is too large
Load Diff
@@ -12,5 +12,8 @@ tauri-build = { version = "2", features = [] }
|
||||
tauri = { version = "2", features = [] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
zhila-daemon = { path = "../../crates/zhila-daemon" }
|
||||
tokio = { version = "1", features = ["rt"] }
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
||||
|
||||
[workspace]
|
||||
|
||||
@@ -1,6 +1,44 @@
|
||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
|
||||
|
||||
use zhila_daemon::{HostConfig, run};
|
||||
|
||||
fn main() {
|
||||
let _ = tracing_subscriber::fmt()
|
||||
.with_env_filter(
|
||||
tracing_subscriber::EnvFilter::try_from_default_env()
|
||||
.unwrap_or_else(|_| "zhila_daemon=info,zhila_engine=info".into()),
|
||||
)
|
||||
.with_target(false)
|
||||
.try_init();
|
||||
|
||||
// The native app is self-contained: the engine, session, project store and
|
||||
// wire live in this process. The webview talks to the same loopback wire as
|
||||
// the browser-first surface.
|
||||
std::thread::spawn(|| {
|
||||
let runtime = match tokio::runtime::Builder::new_current_thread()
|
||||
.enable_all()
|
||||
.build()
|
||||
{
|
||||
Ok(runtime) => runtime,
|
||||
Err(error) => {
|
||||
eprintln!("zhila host runtime: {error}");
|
||||
return;
|
||||
}
|
||||
};
|
||||
runtime.block_on(async {
|
||||
if let Err(error) = run(HostConfig {
|
||||
port: 4317,
|
||||
token: "dev".into(),
|
||||
no_audio: false,
|
||||
project: None,
|
||||
})
|
||||
.await
|
||||
{
|
||||
eprintln!("zhila host: {error:#}");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
tauri::Builder::default()
|
||||
.run(tauri::generate_context!())
|
||||
.expect("ZHILA could not open its window");
|
||||
|
||||
Reference in New Issue
Block a user