mod app_root;
pub mod chunk;
mod client;
pub mod contract;
mod discovery;
mod error;
mod fail_limit;
mod host_identity;
#[cfg(feature = "link")]
pub mod link;
pub mod mode;
mod peer;
pub mod private;
mod record;
#[cfg(feature = "relay")]
pub mod relay;
#[cfg(any(feature = "remote", feature = "link"))]
pub mod remote;
mod server;
mod service;
pub mod stop;
mod suite;
pub mod supervisor;
mod takeover_watch;
pub mod ticker;
mod transport;
pub use client::{Client, ClientConfig, RetryPolicy, DEFAULT_DEADLINE};
pub use discovery::{
adopt_or_spawn, discover_apps_in, discover_apps_in_with, discover_macos, discover_macos_with,
discover_windows, discover_windows_with, parse_plist_string, parse_reg_query, plan_host,
poll_until, publish_takeover, record_process_matches, resolve_install_dir, resolve_rank,
should_request_takeover, spawn_detached, takeover_obliges_yield, try_adopt_or_spawn,
try_plan_host, wait_for_claim_winner, AdoptOrSpawn, Completeness, DiscoverOptions, HostPlan,
InstalledApp, SpawnClaim, SpawnClaimError, UninstallEntry,
};
pub use private::{
exit_when_stdin_closes, watch_reader_eof, watch_stdin_eof, PrivateChild, PrivateSecret,
SecretError, SECRET_BYTES, SECRET_HEX_LEN,
};
pub use app_root::{
valid_app_name, AppRoot, AppRootError, MigrationOutcome, WriterLock, MAX_APP_NAME_LEN,
MIGRATION_MARKER,
};
#[allow(deprecated)]
pub use discovery::{discover_apps, KNOWN_APPS};
pub use error::{
ConnectError, ServiceError, ERROR_BAD_CHUNK, ERROR_CONNECTION_CLOSED, ERROR_FORBIDDEN,
ERROR_HOST_HANDOFF, ERROR_HOST_IDENTITY, ERROR_NOT_ALLOWED, ERROR_REQUEST_TOO_LARGE,
ERROR_RESPONSE_TOO_LARGE, ERROR_REVISION_CONFLICT, ERROR_SUITE_UNRESOLVED, ERROR_TIMEOUT,
ERROR_UNAUTHENTICATED, ERROR_UNAVAILABLE,
};
pub use host_identity::{HostExpectation, HostIdentityError, HostIdentityReason, HostProcess};
#[cfg(unix)]
pub use peer::verify_peer_is_current_user;
#[cfg(windows)]
pub use peer::{
owner_only_security_attributes, verify_pipe_peer_is_current_user,
verify_pipe_server_is_current_user, OwnerOnlySecurityAttributes,
};
pub use peer::{PeerError, PeerIdentity};
pub use record::{
clear_takeover_if_owner, read_live_record, read_record, read_takeover, record_path,
takeover_path, try_read_live_record, try_read_record, try_read_takeover, write_atomic,
write_takeover, Allowlist, ServiceRecord, TakeoverRequest, PROTOCOL_MAJOR, PROTOCOL_MINOR,
RANK_UNKNOWN,
};
pub use server::{
host, host_with_options, CallContext, Emit, Handler, HostError, HostOptions, Hosted,
ServiceConfig, ServiceEvent, ServiceStatus, DEFAULT_FRAME_LIMIT, DEFAULT_MAX_CONNECTIONS,
DEFAULT_WRITE_TIMEOUT,
};
pub use service::{BuildError, Service, ServiceBuilder};
pub use suite::{
refuse_build_tool_real_data, valid_service_name, Suite, SuiteError, ENV_SUITE_ROOT,
MAX_SERVICE_NAME_LEN, SHARED_DIR_NAME, SUITE_DIR_NAME,
};
pub use transport::{
endpoint_candidates, endpoint_for, find_live_endpoint, open_stream, open_stream_expecting,
pid_alive, probe_endpoint, try_endpoint_for, Accepted, Conn, EndpointError, Listener, Stream,
DEFAULT_MAX_PIPE_INSTANCES, MAX_UNIX_SOCKET_PATH,
};