Skip to main content

lzc_sdk/
lib.rs

1#![forbid(unsafe_code)]
2#![doc = "Rust SDK for `LazyCat` application and device APIs."]
3
4mod auth;
5mod connection;
6mod credentials;
7mod device_transport;
8mod error;
9mod gateway;
10mod hserver;
11mod metadata;
12mod peer;
13#[cfg(feature = "remotesocks")]
14mod remotesocks;
15mod service_address;
16mod service_status;
17
18#[allow(clippy::all, clippy::pedantic, non_camel_case_types)]
19#[allow(rustdoc::broken_intra_doc_links)]
20mod generated {
21    include!("gen/mod.rs");
22}
23
24pub mod proto {
25    pub use crate::generated::cloud::lazycat::apis::{common, localdevice, sys};
26    pub use crate::generated::io::containerd;
27    pub use crate::generated::lzc::dlna;
28}
29
30pub use auth::{AuthToken, TokenProvider, request_auth_token};
31pub use connection::{PORTAL_SOCKET_PATH, RUNTIME_SOCKET_PATH, connect_api, connect_api_with};
32pub use credentials::{APP_CERT_PATH, APP_KEY_PATH, CA_PATH, ClientCredentials, CredentialPaths};
33pub use device_transport::AuthenticatedService;
34pub use error::Error;
35pub use gateway::{ApiGateway, DeviceProxy};
36pub use hserver::{HServerClient, RemoteLocation, RemoteSocksEndpoint};
37pub use metadata::{REAL_UID_METADATA_KEY, with_real_uid};
38pub use peer::{Application, peer_application};
39#[cfg(feature = "remotesocks")]
40pub use remotesocks::{
41    RemoteNetstack, RemoteTcpListener, RemoteTcpStream, RemoteUdpSocket, SocksAddress,
42};
43pub use service_address::query_service_address;
44pub use service_status::{
45    DeviceProxyStatus, ServiceState, ServiceStatus, ServiceStatusQuerier, ServiceStatusRegistry,
46};