Skip to main content

dioxus/
lib.rs

1#![doc = include_str!("../README.md")]
2//!
3//! ## Dioxus Crate Features
4//!
5//! This crate has several features that can be enabled to change the active renderer and enable various integrations:
6//!
7//! - `signals`: (default) re-exports `dioxus-signals`
8//! - `macro`: (default) re-exports `dioxus-macro`
9//! - `html`: (default) exports `dioxus-html` as the default elements to use in rsx
10//! - `hooks`: (default) re-exports `dioxus-hooks`
11//! - `hot-reload`: (default) enables hot rsx reloading in all renderers that support it
12//! - `router`: exports the [router](https://dioxuslabs.com/learn/0.7/essentials/router/) and enables any router features for the current platform
13//! - `third-party-renderer`: Just disables warnings about no active platform when no renderers are enabled
14//! - `logger`: Enable the default tracing subscriber for Dioxus apps
15//!
16//! Platform features (the current platform determines what platform the [`launch()`] function runs):
17//!
18//! - `fullstack`: enables the fullstack platform. This must be used in combination with the `web` feature for wasm builds and `server` feature for server builds
19//! - `desktop`: enables the desktop platform
20//! - `mobile`: enables the mobile platform
21//! - `web`: enables the web platform. If the fullstack platform is enabled, this will set the fullstack platform to client mode
22//! - `liveview`: enables the liveview platform
23//! - `server`: enables the server variant of dioxus
24#![doc(html_logo_url = "https://avatars.githubusercontent.com/u/79236386")]
25#![doc(html_favicon_url = "https://avatars.githubusercontent.com/u/79236386")]
26#![cfg_attr(docsrs, feature(doc_cfg))]
27
28pub use dioxus_core;
29#[doc(inline)]
30pub use dioxus_core::{CapturedError, Ok, Result};
31
32#[cfg(feature = "launch")]
33#[cfg_attr(docsrs, doc(cfg(feature = "launch")))]
34mod launch;
35
36pub use dioxus_core as core;
37
38#[cfg(feature = "launch")]
39#[cfg_attr(docsrs, doc(cfg(feature = "launch")))]
40pub use crate::launch::*;
41
42#[cfg(feature = "hooks")]
43#[cfg_attr(docsrs, doc(cfg(feature = "hooks")))]
44pub use dioxus_hooks as hooks;
45
46#[cfg(feature = "signals")]
47#[cfg_attr(docsrs, doc(cfg(feature = "signals")))]
48pub use dioxus_signals as signals;
49
50#[cfg(feature = "signals")]
51#[cfg_attr(docsrs, doc(cfg(feature = "signals")))]
52pub use dioxus_stores as stores;
53
54pub mod events {
55    #[cfg(feature = "html")]
56    #[cfg_attr(docsrs, doc(cfg(feature = "html")))]
57    pub use dioxus_html::events::*;
58}
59
60#[cfg(feature = "document")]
61#[cfg_attr(docsrs, doc(cfg(feature = "document")))]
62pub use dioxus_document as document;
63
64#[cfg(feature = "document")]
65#[cfg_attr(docsrs, doc(cfg(feature = "document")))]
66pub use dioxus_history as history;
67
68#[cfg(feature = "html")]
69#[cfg_attr(docsrs, doc(cfg(feature = "html")))]
70pub use dioxus_html as html;
71
72#[cfg(feature = "macro")]
73#[cfg_attr(docsrs, doc(cfg(feature = "macro")))]
74pub use dioxus_core_macro as core_macro;
75
76#[cfg(feature = "logger")]
77#[cfg_attr(docsrs, doc(cfg(feature = "logger")))]
78pub use dioxus_logger as logger;
79
80#[cfg(feature = "cli-config")]
81#[cfg_attr(docsrs, doc(cfg(feature = "cli-config")))]
82pub use dioxus_cli_config as cli_config;
83
84#[cfg(feature = "server")]
85#[cfg_attr(docsrs, doc(cfg(feature = "server")))]
86pub use dioxus_server as server;
87
88#[cfg(feature = "server")]
89pub use dioxus_server::serve;
90
91#[cfg(feature = "devtools")]
92#[cfg_attr(docsrs, doc(cfg(feature = "devtools")))]
93pub use dioxus_devtools as devtools;
94
95#[cfg(feature = "web")]
96#[cfg_attr(docsrs, doc(cfg(feature = "web")))]
97pub use dioxus_web as web;
98
99#[cfg(feature = "router")]
100#[cfg_attr(docsrs, doc(cfg(feature = "router")))]
101pub use dioxus_router as router;
102
103#[cfg(feature = "fullstack")]
104#[cfg_attr(docsrs, doc(cfg(feature = "fullstack")))]
105pub use dioxus_fullstack as fullstack;
106
107#[cfg(feature = "desktop")]
108#[cfg_attr(docsrs, doc(cfg(feature = "desktop")))]
109pub use dioxus_desktop as desktop;
110
111#[cfg(feature = "mobile")]
112#[cfg_attr(docsrs, doc(cfg(feature = "mobile")))]
113pub use dioxus_desktop as mobile;
114
115#[cfg(feature = "native")]
116#[cfg_attr(docsrs, doc(cfg(feature = "native")))]
117pub use dioxus_native as native;
118
119#[cfg(feature = "liveview")]
120#[cfg_attr(docsrs, doc(cfg(feature = "liveview")))]
121pub use dioxus_liveview as liveview;
122
123#[cfg(feature = "ssr")]
124#[cfg_attr(docsrs, doc(cfg(feature = "ssr")))]
125pub use dioxus_ssr as ssr;
126
127#[cfg(feature = "warnings")]
128#[cfg_attr(docsrs, doc(cfg(feature = "warnings")))]
129pub use warnings;
130
131pub use dioxus_config_macros as config_macros;
132
133#[cfg(feature = "wasm-split")]
134#[cfg_attr(docsrs, doc(cfg(feature = "wasm-split")))]
135pub use wasm_splitter as wasm_split;
136
137pub use subsecond;
138
139#[cfg(feature = "asset")]
140#[cfg_attr(docsrs, doc(cfg(feature = "asset")))]
141#[doc(inline)]
142pub use dioxus_asset_resolver as asset_resolver;
143
144pub mod prelude {
145    #[cfg(feature = "document")]
146    #[cfg_attr(docsrs, doc(cfg(feature = "document")))]
147    #[doc(inline)]
148    pub use dioxus_document::{self as document, Meta, Stylesheet, Title};
149
150    #[cfg(feature = "document")]
151    #[cfg_attr(docsrs, doc(cfg(feature = "document")))]
152    #[doc(inline)]
153    pub use dioxus_history::{history, History};
154
155    #[cfg(feature = "launch")]
156    #[cfg_attr(docsrs, doc(cfg(feature = "launch")))]
157    #[doc(inline)]
158    pub use crate::launch::*;
159
160    #[cfg(feature = "hooks")]
161    #[cfg_attr(docsrs, doc(cfg(feature = "hooks")))]
162    #[doc(inline)]
163    pub use crate::hooks::*;
164
165    #[cfg(feature = "signals")]
166    #[cfg_attr(docsrs, doc(cfg(feature = "signals")))]
167    #[doc(inline)]
168    pub use dioxus_signals::{self, *};
169
170    #[cfg(feature = "signals")]
171    pub use dioxus_stores::{self, store, use_store, GlobalStore, ReadStore, Store, WriteStore};
172
173    #[cfg(feature = "macro")]
174    #[cfg_attr(docsrs, doc(cfg(feature = "macro")))]
175    #[allow(deprecated)]
176    #[doc(inline)]
177    pub use dioxus_core_macro::{component, rsx, Props};
178
179    #[cfg(feature = "launch")]
180    #[cfg_attr(docsrs, doc(cfg(feature = "launch")))]
181    pub use dioxus_config_macro::*;
182
183    #[cfg(feature = "html")]
184    #[cfg_attr(docsrs, doc(cfg(feature = "html")))]
185    pub use dioxus_html as dioxus_elements;
186
187    #[cfg(feature = "html")]
188    #[cfg_attr(docsrs, doc(cfg(feature = "html")))]
189    #[doc(inline)]
190    pub use dioxus_elements::{Code, Key, Location, Modifiers};
191
192    #[cfg(feature = "html")]
193    #[cfg_attr(docsrs, doc(cfg(feature = "html")))]
194    #[doc(no_inline)]
195    pub use dioxus_elements::{
196        events::*, extensions::*, global_attributes, keyboard_types, svg_attributes, traits::*,
197        GlobalAttributesExtension, SvgAttributesExtension,
198    };
199
200    #[cfg(feature = "devtools")]
201    #[cfg_attr(docsrs, doc(cfg(feature = "devtools")))]
202    pub use dioxus_devtools;
203
204    pub use dioxus_core;
205
206    #[cfg(feature = "fullstack")]
207    #[cfg_attr(docsrs, doc(cfg(feature = "fullstack")))]
208    #[doc(inline)]
209    pub use dioxus_fullstack::{
210        self as dioxus_fullstack, delete, get, patch, post, put, server, use_loader,
211        use_server_cached, use_server_future, HttpError, OrHttpError, ServerFnError,
212        ServerFnResult, StatusCode,
213    };
214
215    #[cfg(feature = "server")]
216    #[cfg_attr(docsrs, doc(cfg(feature = "server")))]
217    #[doc(inline)]
218    pub use dioxus_server::{self, serve, DioxusRouterExt, ServeConfig, ServerFunction};
219
220    #[cfg(feature = "router")]
221    #[cfg_attr(docsrs, doc(cfg(feature = "router")))]
222    pub use dioxus_router;
223
224    #[cfg(feature = "router")]
225    #[cfg_attr(docsrs, doc(cfg(feature = "router")))]
226    #[doc(inline)]
227    pub use dioxus_router::{
228        hooks::*, navigator, use_navigator, GoBackButton, GoForwardButton, Link, NavigationTarget,
229        Outlet, Routable, Router,
230    };
231
232    #[cfg(feature = "asset")]
233    #[cfg_attr(docsrs, doc(cfg(feature = "asset")))]
234    #[doc(inline)]
235    pub use manganis::{self, *};
236
237    #[cfg(feature = "wasm-split")]
238    #[cfg_attr(docsrs, doc(cfg(feature = "wasm-split")))]
239    pub use wasm_splitter as wasm_split;
240
241    #[doc(inline)]
242    pub use dioxus_core::{
243        consume_context, provide_context, spawn, suspend, try_consume_context, use_drop, use_hook,
244        AnyhowContext, Attribute, Callback, Component, Element, ErrorBoundary, ErrorContext, Event,
245        EventHandler, Fragment, HasAttributes, IntoDynNode, RenderError, Result, ScopeId,
246        SuspenseBoundary, SuspenseContext, VNode, VirtualDom,
247    };
248
249    #[cfg(feature = "logger")]
250    pub use dioxus_logger::tracing::{debug, error, info, trace, warn};
251}