updated the dependencies - maintaining compatibility and tests (#4363)

* Update dependencies in Cargo.lock

* added in the missing bevy example which was included in recent merge

* undo unneccessary library installation in gh actions

* cleaned up further

* Update dependencies in Cargo.toml and Cargo.lock askana_escape to 0.13

* updated code to make tests work

* updated the wgpu texture example

* replaced all direct reference with use

* fixed wgpu and jsframework errors in benches and examples

* Fix: Import black_box from std::hint

* grand finale upgrade

* updated cargo.lock

* Bump hyper-util to 0.1.15 and plist to 1.7.4

* remove some unused swc dependencies and add a command to update them in the future

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
This commit is contained in:
authored and GitHub committed 2025-07-14 13:03:40 -07:00
1 parent 93147587b8
commit c5b33924ae
27 files changed
+773 -962

No files matched your search

-3
View File
@@ -61,7 +61,6 @@ jobs:
repository-name: dioxuslabs/docsite repository-name: dioxuslabs/docsite
clean: false clean: false
token: ${{ secrets.DEPLOY_KEY }} token: ${{ secrets.DEPLOY_KEY }}
# Attempt to backport a merged pull request to the latest stable release # Attempt to backport a merged pull request to the latest stable release
# #
# If the backported PR is succesfully merged # If the backported PR is succesfully merged
@@ -87,5 +86,3 @@ jobs:
# uses: codecov/codecov-action@v2 # uses: codecov/codecov-action@v2
# with: # with:
# fail_ci_if_error: false # fail_ci_if_error: false
Generated
+543 -768
View File
File diff suppressed because it is too large. Load diff
+50 -50
View File
@@ -203,17 +203,17 @@ warnings = { version = "0.2.1" }
# a fork of pretty please for tests - let's get off of this if we can! # a fork of pretty please for tests - let's get off of this if we can!
prettier-please = { version = "0.3.0", features = ["verbatim"] } prettier-please = { version = "0.3.0", features = ["verbatim"] }
anyhow = "1.0.97" anyhow = "1.0.98"
clap = { version = "4.5.31" } clap = { version = "4.5.40" }
askama_escape = "0.13.0" askama_escape = "0.13.0"
tracing = "0.1.41" tracing = "0.1.41"
tracing-futures = "0.2.5" tracing-futures = "0.2.5"
tracing-subscriber = { version = "0.3.19", default-features = false } tracing-subscriber = { version = "0.3.19", default-features = false }
toml = "0.8" toml = "0.8"
tokio = "1.43" tokio = "1.46"
tokio-util = { version = "0.7.13" } tokio-util = { version = "0.7.15" }
tokio-stream = { version = "0.1.17" } tokio-stream = { version = "0.1.17" }
slab = "0.4.9" slab = "0.4.10"
slotmap = { version = "1.0.7", features = ["serde"] } slotmap = { version = "1.0.7", features = ["serde"] }
futures = "0.3.31" futures = "0.3.31"
futures-channel = "0.3.31" futures-channel = "0.3.31"
@@ -225,23 +225,23 @@ js-sys = "0.3.77"
web-sys = { version = "0.3.77", default-features = false } web-sys = { version = "0.3.77", default-features = false }
html_parser = "0.7.0" html_parser = "0.7.0"
thiserror = "2.0.12" thiserror = "2.0.12"
prettyplease = { version = "0.2.30", features = ["verbatim"] } prettyplease = { version = "0.2.35", features = ["verbatim"] }
const_format = "0.2.34" const_format = "0.2.34"
cargo_toml = { version = "0.22.1" } cargo_toml = { version = "0.22.1" }
tauri-utils = { version = "=2.5.0" } tauri-utils = { version = "=2.5.0" }
tauri-bundler = { version = "=2.5.0" } tauri-bundler = { version = "=2.5.0" }
lru = "0.14.0" lru = "0.16.0"
async-trait = "0.1.87" async-trait = "0.1.88"
axum = { version = "0.8.1", default-features = false } axum = { version = "0.8.4", default-features = false }
axum-server = { version = "0.7.1", default-features = false } axum-server = { version = "0.7.2", default-features = false }
server_fn = { version = "0.8.2", default-features = false } server_fn = { version = "0.8.2", default-features = false }
server_fn_macro = { version = "0.8.2" } server_fn_macro = { version = "0.8.2" }
tower = "0.5.2" tower = "0.5.2"
http = "1.2.0" http = "1.3.1"
notify = { version = "8.0.0" } notify = { version = "8.1.0" }
tower-http = "0.6.2" tower-http = "0.6.6"
hyper = "1.6.0" hyper = "1.6.0"
hyper-rustls = { version = "0.27.5", default-features = false, features = [ hyper-rustls = { version = "0.27.7", default-features = false, features = [
"native-tokio", "native-tokio",
"http1", "http1",
"http2", "http2",
@@ -249,21 +249,21 @@ hyper-rustls = { version = "0.27.5", default-features = false, features = [
"logging", "logging",
"ring", "ring",
] } ] }
rustls = { version = "0.23.23", default-features = false, features = ["logging", "std", "tls12", "ring"] } rustls = { version = "0.23.28", default-features = false, features = ["logging", "std", "tls12", "ring"] }
serde_json = "1.0.140" serde_json = "1.0.140"
serde = "1.0.218" serde = "1.0.219"
syn = "2.0" syn = "2.0"
quote = "1.0" quote = "1.0"
proc-macro2 = "1.0" proc-macro2 = "1.0"
axum_session = "0.16.0" axum_session = "0.16.0"
axum_session_auth = "0.16.0" axum_session_auth = "0.16.0"
axum_session_sqlx = "0.5.0" axum_session_sqlx = "0.5.0"
axum-extra = "0.10.0" axum-extra = "0.10.1"
reqwest = "0.12.12" reqwest = "0.12.22"
owo-colors = "4.2.0" owo-colors = "4.2.2"
ciborium = "0.2.2" ciborium = "0.2.2"
base64 = "0.22.1" base64 = "0.22.1"
uuid = "1.15.1" uuid = "1.17.0"
convert_case = "0.8.0" convert_case = "0.8.0"
tungstenite = { version = "0.27.0" } tungstenite = { version = "0.27.0" }
tokio-tungstenite = { version = "0.27.0" } tokio-tungstenite = { version = "0.27.0" }
@@ -271,45 +271,45 @@ gloo-timers = "0.3.0"
fluent-uri = { version = "0.3.2", features = ["serde"] } fluent-uri = { version = "0.3.2", features = ["serde"] }
internment = { version = "0.8.6" } internment = { version = "0.8.6" }
proc-macro2-diagnostics = { version = "0.10", default-features = false } proc-macro2-diagnostics = { version = "0.10", default-features = false }
env_logger = "0.11.6" env_logger = "0.11.8"
chrono = { version = "0.4.40" } chrono = { version = "0.4.41" }
gloo = { version = "0.11.0" } gloo = { version = "0.11.0" }
gloo-utils = { version = "0.2.0" } gloo-utils = { version = "0.2.0" }
rustversion = "1.0.20" rustversion = "1.0.21"
rand = "0.8" rand = "0.9"
longest-increasing-subsequence = "0.1.0" longest-increasing-subsequence = "0.1.0"
trybuild = "1.0" trybuild = "1.0"
dirs = "6.0.0" dirs = "6.0.0"
cargo-config2 = "0.1.32" cargo-config2 = "0.1.34"
criterion = { version = "0.5" } criterion = { version = "0.6" }
cargo_metadata = "0.19.2" cargo_metadata = "0.19.2"
parking_lot = "0.12.3" parking_lot = "0.12.4"
tracing-wasm = "0.2.1" tracing-wasm = "0.2.1"
console_error_panic_hook = "0.1.7" console_error_panic_hook = "0.1.7"
base16 = "0.2.1" base16 = "0.2.1"
digest = "0.10.7" digest = "0.10.7"
sha2 = "0.10.8" sha2 = "0.10.9"
walrus = { version = "0.23.3", features = ["parallel"] } walrus = { version = "0.23.3", features = ["parallel"] }
id-arena = "2.2.1" id-arena = "2.2.1"
async-compression = { version = "0.4.20", features = ["futures-io", "gzip", "brotli"] } async-compression = { version = "0.4.25", features = ["futures-io", "gzip", "brotli"] }
getrandom = { version = "0.2.0" } getrandom = { version = "0.3.3" }
async-once-cell = { version = "0.5.4" } async-once-cell = { version = "0.5.4" }
rayon = "1.10.0" rayon = "1.10.0"
wasmparser = "0.226.0" wasmparser = "0.235.0"
itertools = "0.14.0" itertools = "0.14.0"
object = { version = "0.36.0" } object = { version = "0.37.1" }
bincode = "1.3.3" bincode = "1.3.3"
inventory = { version = "0.3.5" } inventory = { version = "0.3.20" }
macro-string = "0.1.4" macro-string = "0.1.4"
walkdir = "2.5.0" walkdir = "2.5.0"
url = "2.3.1" url = "2.5.4"
separator = "0.4.1" separator = "0.4.1"
pretty_assertions = "1.4.0" pretty_assertions = "1.4.1"
serde_repr = "0.1" serde_repr = "0.1"
hyper-util = "0.1.10" hyper-util = "0.1.15"
krates = { version = "0.19.0" } krates = { version = "0.17.5" }
libloading = "0.8.6" libloading = "0.8.8"
libc = "0.2.170" libc = "0.2.174"
memmap2 = "0.9.5" memmap2 = "0.9.5"
memfd = "0.6.4" memfd = "0.6.4"
@@ -320,30 +320,30 @@ infer = "0.19.0"
dunce = "1.0.5" dunce = "1.0.5"
percent-encoding = "2.3.1" percent-encoding = "2.3.1"
global-hotkey = "0.7.0" global-hotkey = "0.7.0"
rfd = { version = "0.15.2", default-features = false } rfd = { version = "0.15.3", default-features = false }
muda = "0.17.0" muda = "0.17.0"
cocoa = "0.26" cocoa = "0.26"
core-foundation = "0.10.1" core-foundation = "0.10.1"
objc = { version = "0.2.7", features = ["exception"] } objc = { version = "0.2.7", features = ["exception"] }
objc_id = "0.1.1" objc_id = "0.1.1"
tray-icon = "0.21.0" tray-icon = "0.21.0"
open = "5.1.2" open = "5.3.2"
# web # web
gloo-dialogs = "0.2.0" gloo-dialogs = "0.2.0"
# tui stuff # tui stuff
ansi-to-tui = "7.0" ansi-to-tui = "7.0"
ansi-to-html = "0.2.1" ansi-to-html = "0.2.2"
path-absolutize = "3.1" path-absolutize = "3.1"
crossterm = { version = "0.29.0" } crossterm = { version = "0.29.0" }
ratatui = { version = "0.29.0" } ratatui = { version = "0.29.0" }
shell-words = "1.1.0" shell-words = "1.1.0"
color-eyre = "0.6.3" color-eyre = "0.6.5"
# native # native
keyboard-types = { version = "0.7", default-features = false } keyboard-types = { version = "0.7", default-features = false }
winit = { version = "0.30.2", features = ["rwh_06"] } winit = { version = "0.30.11", features = ["rwh_06"] }
[profile.dev] [profile.dev]
@@ -412,7 +412,7 @@ reqwest = { workspace = true, features = ["json"], optional = true }
ciborium = { workspace = true, optional = true } ciborium = { workspace = true, optional = true }
base64 = { workspace = true, optional = true } base64 = { workspace = true, optional = true }
http-range = { version = "0.1.5", optional = true } http-range = { version = "0.1.5", optional = true }
wgpu = { version = "0.19", optional = true } wgpu = { version = "24.0", optional = true }
ouroboros = { version = "*", optional = true } ouroboros = { version = "*", optional = true }
wasm-splitter = { workspace = true, package = "wasm-split" } wasm-splitter = { workspace = true, package = "wasm-split" }
@@ -424,16 +424,16 @@ separator = { workspace = true }
serde = { workspace = true, features = ["derive"] } serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true } serde_json = { workspace = true }
rand = { workspace = true, features = ["small_rng"] } rand = { workspace = true, features = ["small_rng"] }
form_urlencoded = "1.2.0" form_urlencoded = "1.2.1"
async-std = "1.12.0" async-std = "1.13.1"
web-time = "1.1.0" web-time = "1.1.0"
[target.'cfg(target_arch = "wasm32")'.dev-dependencies] [target.'cfg(target_arch = "wasm32")'.dev-dependencies]
getrandom = { workspace = true, features = ["js"] } getrandom = { workspace = true, features = ["wasm_js"] }
tokio = { version = "1.43", default-features = false, features = ["sync", "macros", "io-util", "rt", "time"] } tokio = { version = "1.46", default-features = false, features = ["sync", "macros", "io-util", "rt", "time"] }
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
tokio = { version = "1.43", features = ["full"] } tokio = { version = "1.46", features = ["full"] }
# force vendored openssl on android # force vendored openssl on android
[target.'cfg(target_os = "android")'.dev-dependencies] [target.'cfg(target_os = "android")'.dev-dependencies]
+2 -2
View File
@@ -15,8 +15,8 @@ dioxus-cli-config = { workspace = true, optional = true }
axum = { workspace = true, optional = true } axum = { workspace = true, optional = true }
tokio = { workspace = true, features = ["full"], optional = true } tokio = { workspace = true, features = ["full"], optional = true }
tower-http = { workspace = true, features = ["auth"], optional = true } tower-http = { workspace = true, features = ["auth"], optional = true }
async-trait = { version = "0.1.71", optional = true } async-trait = { version = "0.1.88", optional = true }
sqlx = { version = "0.8.2", features = [ sqlx = { version = "0.8.6", features = [
"macros", "macros",
"migrate", "migrate",
"postgres", "postgres",
+2 -2
View File
@@ -7,7 +7,7 @@
//! If you `go-to-definition` on the `svg` element, you'll see its custom namespace. //! If you `go-to-definition` on the `svg` element, you'll see its custom namespace.
use dioxus::prelude::*; use dioxus::prelude::*;
use rand::{thread_rng, Rng}; use rand::{rng, Rng};
fn main() { fn main() {
dioxus::launch(|| { dioxus::launch(|| {
@@ -42,7 +42,7 @@ fn Dice() -> Element {
view_box: "-1000 -1000 2000 2000", view_box: "-1000 -1000 2000 2000",
onclick: move |event| { onclick: move |event| {
event.prevent_default(); event.prevent_default();
value.set(thread_rng().gen_range(1..=6)) value.set(rng().random_range(1..=6))
}, },
rect { x: -1000, y: -1000, width: 2000, height: 2000, rx: 200, fill: "#aaa" } rect { x: -1000, y: -1000, width: 2000, height: 2000, rx: 200, fill: "#aaa" }
for ((x, y), _) in DOTS.iter().zip(active_dots.read().iter()).filter(|(_, &active)| active) { for ((x, y), _) in DOTS.iter().zip(active_dots.read().iter()).filter(|(_, &active)| active) {
+43 -40
View File
@@ -4,7 +4,13 @@ use crate::Color;
use dioxus_native::{CustomPaintCtx, CustomPaintSource, DeviceHandle, TextureHandle}; use dioxus_native::{CustomPaintCtx, CustomPaintSource, DeviceHandle, TextureHandle};
use std::sync::mpsc::{channel, Receiver, Sender}; use std::sync::mpsc::{channel, Receiver, Sender};
use std::time::Instant; use std::time::Instant;
use wgpu::Instance; use wgpu::{
CommandEncoderDescriptor, Device, Extent3d, FragmentState, Instance, LoadOp, MultisampleState,
Operations, PipelineLayoutDescriptor, PrimitiveState, PushConstantRange, Queue,
RenderPassColorAttachment, RenderPassDescriptor, RenderPipeline, RenderPipelineDescriptor,
ShaderModuleDescriptor, ShaderSource, ShaderStages, StoreOp, Texture, TextureDescriptor,
TextureDimension, TextureFormat, TextureUsages, TextureViewDescriptor, VertexState,
};
pub struct DemoPaintSource { pub struct DemoPaintSource {
state: DemoRendererState, state: DemoRendererState,
@@ -16,8 +22,10 @@ pub struct DemoPaintSource {
impl CustomPaintSource for DemoPaintSource { impl CustomPaintSource for DemoPaintSource {
fn resume(&mut self, _instance: &Instance, device_handle: &DeviceHandle) { fn resume(&mut self, _instance: &Instance, device_handle: &DeviceHandle) {
// TODO: work out what to do about width/height // Extract device and queue from device_handle
let active_state = ActiveDemoRenderer::new(device_handle); let device = &device_handle.device;
let queue = &device_handle.queue;
let active_state = ActiveDemoRenderer::new(device, queue);
self.state = DemoRendererState::Active(Box::new(active_state)); self.state = DemoRendererState::Active(Box::new(active_state));
} }
@@ -49,14 +57,14 @@ enum DemoRendererState {
#[derive(Clone)] #[derive(Clone)]
struct TextureAndHandle { struct TextureAndHandle {
texture: wgpu::Texture, texture: Texture,
handle: TextureHandle, handle: TextureHandle,
} }
struct ActiveDemoRenderer { struct ActiveDemoRenderer {
device: wgpu::Device, device: Device,
queue: wgpu::Queue, queue: Queue,
pipeline: wgpu::RenderPipeline, pipeline: RenderPipeline,
displayed_texture: Option<TextureAndHandle>, displayed_texture: Option<TextureAndHandle>,
next_texture: Option<TextureAndHandle>, next_texture: Option<TextureAndHandle>,
} }
@@ -110,44 +118,39 @@ impl DemoPaintSource {
} }
impl ActiveDemoRenderer { impl ActiveDemoRenderer {
pub(crate) fn new(device_handle: &DeviceHandle) -> Self { pub(crate) fn new(device: &Device, queue: &Queue) -> Self {
let device = &device_handle.device; let shader = device.create_shader_module(ShaderModuleDescriptor {
let queue = &device_handle.queue;
let shader = device.create_shader_module(wgpu::ShaderModuleDescriptor {
label: None, label: None,
source: wgpu::ShaderSource::Wgsl(std::borrow::Cow::Borrowed(include_str!( source: ShaderSource::Wgsl(std::borrow::Cow::Borrowed(include_str!("shader.wgsl"))),
"shader.wgsl"
))),
}); });
let pipeline_layout = device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { let pipeline_layout = device.create_pipeline_layout(&PipelineLayoutDescriptor {
label: None, label: None,
bind_group_layouts: &[], bind_group_layouts: &[],
push_constant_ranges: &[wgpu::PushConstantRange { push_constant_ranges: &[PushConstantRange {
stages: wgpu::ShaderStages::FRAGMENT, stages: ShaderStages::FRAGMENT,
range: 0..16, // full size in bytes, aligned range: 0..16, // full size in bytes, aligned
}], }],
}); });
let pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { let pipeline = device.create_render_pipeline(&RenderPipelineDescriptor {
label: None, label: None,
layout: Some(&pipeline_layout), layout: Some(&pipeline_layout),
vertex: wgpu::VertexState { vertex: VertexState {
module: &shader, module: &shader,
entry_point: Some("vs_main"), entry_point: Some("vs_main"),
buffers: &[], buffers: &[],
compilation_options: Default::default(), compilation_options: Default::default(),
}, },
fragment: Some(wgpu::FragmentState { fragment: Some(FragmentState {
module: &shader, module: &shader,
entry_point: Some("fs_main"), entry_point: Some("fs_main"),
compilation_options: Default::default(), compilation_options: Default::default(),
targets: &[Some(wgpu::TextureFormat::Rgba8Unorm.into())], targets: &[Some(TextureFormat::Rgba8Unorm.into())],
}), }),
primitive: wgpu::PrimitiveState::default(), primitive: PrimitiveState::default(),
depth_stencil: None, depth_stencil: None,
multisample: wgpu::MultisampleState::default(), multisample: MultisampleState::default(),
multiview: None, multiview: None,
cache: None, cache: None,
}); });
@@ -199,16 +202,16 @@ impl ActiveDemoRenderer {
let mut encoder = self let mut encoder = self
.device .device
.create_command_encoder(&wgpu::CommandEncoderDescriptor { label: None }); .create_command_encoder(&CommandEncoderDescriptor { label: None });
{ {
let mut rpass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { let mut rpass = encoder.begin_render_pass(&RenderPassDescriptor {
label: None, label: None,
color_attachments: &[Some(wgpu::RenderPassColorAttachment { color_attachments: &[Some(RenderPassColorAttachment {
view: &next_texture.create_view(&wgpu::TextureViewDescriptor::default()), view: &next_texture.create_view(&TextureViewDescriptor::default()),
resolve_target: None, resolve_target: None,
ops: wgpu::Operations { ops: Operations {
load: wgpu::LoadOp::Clear(wgpu::Color::GREEN), load: LoadOp::Clear(wgpu::Color::GREEN),
store: wgpu::StoreOp::Store, store: StoreOp::Store,
}, },
})], })],
depth_stencil_attachment: None, depth_stencil_attachment: None,
@@ -217,7 +220,7 @@ impl ActiveDemoRenderer {
}); });
rpass.set_pipeline(&self.pipeline); rpass.set_pipeline(&self.pipeline);
rpass.set_push_constants( rpass.set_push_constants(
wgpu::ShaderStages::FRAGMENT, // Stage (your constants are for fragment shader) ShaderStages::FRAGMENT, // Stage (your constants are for fragment shader)
0, // Offset in bytes (start at 0) 0, // Offset in bytes (start at 0)
bytemuck::bytes_of(&push_constants), bytemuck::bytes_of(&push_constants),
); );
@@ -237,21 +240,21 @@ struct PushConstants {
light_color_and_time: [f32; 4], light_color_and_time: [f32; 4],
} }
fn create_texture(device: &wgpu::Device, width: u32, height: u32) -> wgpu::Texture { fn create_texture(device: &Device, width: u32, height: u32) -> Texture {
device.create_texture(&wgpu::TextureDescriptor { device.create_texture(&TextureDescriptor {
label: None, label: None,
size: wgpu::Extent3d { size: Extent3d {
width, width,
height, height,
depth_or_array_layers: 1, depth_or_array_layers: 1,
}, },
mip_level_count: 1, mip_level_count: 1,
sample_count: 1, sample_count: 1,
dimension: wgpu::TextureDimension::D2, dimension: TextureDimension::D2,
format: wgpu::TextureFormat::Rgba8Unorm, format: TextureFormat::Rgba8Unorm,
usage: wgpu::TextureUsages::RENDER_ATTACHMENT usage: TextureUsages::RENDER_ATTACHMENT
| wgpu::TextureUsages::TEXTURE_BINDING | TextureUsages::TEXTURE_BINDING
| wgpu::TextureUsages::COPY_SRC, | TextureUsages::COPY_SRC,
view_formats: &[], view_formats: &[],
}) })
} }
+6 -2
View File
@@ -124,6 +124,7 @@ impl<'a> GraphicsResources<'a> {
// Make sure we use the texture resolution limits from the adapter, so we can support images the size of the swapchain. // Make sure we use the texture resolution limits from the adapter, so we can support images the size of the swapchain.
required_limits: wgpu::Limits::downlevel_webgl2_defaults() required_limits: wgpu::Limits::downlevel_webgl2_defaults()
.using_resolution(adapter.limits()), .using_resolution(adapter.limits()),
memory_hints: wgpu::MemoryHints::default(),
}, },
None, None,
) )
@@ -165,18 +166,21 @@ fn fs_main() -> @location(0) vec4<f32> {
layout: Some(&pipeline_layout), layout: Some(&pipeline_layout),
vertex: wgpu::VertexState { vertex: wgpu::VertexState {
module: &shader, module: &shader,
entry_point: "vs_main", entry_point: Some("vs_main"),
buffers: &[], buffers: &[],
compilation_options: wgpu::PipelineCompilationOptions::default(),
}, },
fragment: Some(wgpu::FragmentState { fragment: Some(wgpu::FragmentState {
module: &shader, module: &shader,
entry_point: "fs_main", entry_point: Some("fs_main"),
targets: &[Some(swapchain_format.into())], targets: &[Some(swapchain_format.into())],
compilation_options: wgpu::PipelineCompilationOptions::default(),
}), }),
primitive: wgpu::PrimitiveState::default(), primitive: wgpu::PrimitiveState::default(),
depth_stencil: None, depth_stencil: None,
multisample: wgpu::MultisampleState::default(), multisample: wgpu::MultisampleState::default(),
multiview: None, multiview: None,
cache: None,
}); });
let config = wgpu::SurfaceConfiguration { let config = wgpu::SurfaceConfiguration {
+39 -30
View File
@@ -26,47 +26,56 @@ mozjpeg = { version = "0.10.13", default-features = false, features = [
"parallel", "parallel",
] } ] }
# - PNG # - PNG
imagequant = "4.3.4" imagequant = "4.4.0"
png = "0.17.16" png = "0.17.16"
# Image format/conversion # Image format/conversion
image = { version = "0.25", features = ["avif"] } image = { version = "0.25", features = ["avif"] }
# CSS Minification # CSS Minification
lightningcss = { version = "1.0.0-alpha.63", features = ["browserslist", "into_owned"] } lightningcss = { version = "1.0.0-alpha.67", features = [
"browserslist",
"into_owned",
] }
# SCSS Processing # SCSS Processing
grass = "0.13.4" grass = "0.13.4"
codemap = "0.1.3" codemap = "0.1.3"
# Js minification - swc has introduces minor versions with breaking changes in the past so we pin all of their crates # Js minification - swc has introduces minor versions with breaking changes in the past so we pin all of their crates
swc_allocator = { version = "=2.0.0", default-features = false } # Root dependencies
swc_atoms = { version = "=3.0.2", default-features = false } swc_bundler = { version = "=24.0.0", default-features = false }
swc_bundler = { version = "=7.0.0", default-features = false } swc_common = { version = "=13.0.4", features = [
swc_cached = { version = "=1.0.0", default-features = false } "tty-emitter",
swc_common = { version = "=5.0.0", features = ["tty-emitter"], default-features = false } ], default-features = false }
swc_config = { version = "=1.0.0", default-features = false } swc_ecma_ast = { version = "=13.0.1", default-features = false }
swc_config_macro = { version = "=1.0.0", default-features = false } swc_ecma_codegen = { version = "=15.0.2", default-features = false }
swc_ecma_ast = { version = "=5.0.1", default-features = false } swc_ecma_loader = { version = "=13.0.0", features = [
swc_ecma_codegen = { version = "=5.0.1", default-features = false } "cache",
swc_ecma_codegen_macros = { version = "=1.0.0", default-features = false } "node",
swc_ecma_loader = { version = "=5.0.0", features = ["cache", "node"], default-features = false } ], default-features = false }
swc_ecma_minifier = { version = "=7.0.1", default-features = false } swc_ecma_minifier = { version = "=25.0.0", default-features = false }
swc_ecma_parser = { version = "=6.0.2", default-features = false } swc_ecma_parser = { version = "=19.0.0", default-features = false }
swc_ecma_transforms_base = { version = "=7.0.0", default-features = false } swc_ecma_transforms_base = { version = "=20.0.0", default-features = false }
swc_ecma_transforms_macros = { version = "=1.0.0", default-features = false } swc_ecma_visit = { version = "=13.0.0", default-features = false }
swc_ecma_transforms_optimization = { version = "=7.0.1", default-features = false }
swc_ecma_usage_analyzer = { version = "=7.0.0", default-features = false } # Pinned from cargo tree --prefix none | grep -Eo 'swc[^ ]+ [^ ]+' | sort -u
swc_ecma_utils = { version = "=7.0.0", default-features = false } swc_allocator = { version = "4.0.1" }
swc_ecma_visit = { version = "=5.0.0", default-features = false } swc_atoms = { version = "6.0.1" }
swc_eq_ignore_macros = { version = "=1.0.0", default-features = false } swc_config = { version = "3.1.1" }
swc_fast_graph = { version = "=6.0.0", default-features = false } swc_config_macro = { version = "1.0.1" }
swc_graph_analyzer = { version = "=5.0.0", default-features = false } swc_ecma_codegen_macros = { version = "2.0.2" }
swc_macros_common = { version = "=1.0.0", default-features = false } swc_ecma_lexer = { version = "19.0.1" }
swc_parallel = { version = "=1.0.1", default-features = false } swc_ecma_transforms_optimization = { version = "21.0.0" }
swc_timer = { version = "=1.0.0", default-features = false } swc_ecma_usage_analyzer = { version = "19.0.2" }
swc_visit = { version = "=2.0.0", default-features = false } swc_ecma_utils = { version = "18.1.0" }
browserslist-rs = { version = "=0.16.0" } swc_eq_ignore_macros = { version = "1.0.1" }
swc_graph_analyzer = { version = "14.0.1" }
swc_macros_common = { version = "1.0.1" }
swc_sourcemap = { version = "9.3.2" }
swc_timer = { version = "1.0.0" }
swc_visit = { version = "2.0.1" }
browserslist-rs = { version = "=0.19.0" }
[build-dependencies] [build-dependencies]
built = { version = "0.7.5", features = ["git2"] } built = { version = "0.8.0", features = ["git2"] }
+1 -1
View File
@@ -30,7 +30,7 @@ use crate::hash::hash_file_contents;
struct TracingEmitter; struct TracingEmitter;
impl Emitter for TracingEmitter { impl Emitter for TracingEmitter {
fn emit(&mut self, db: &swc_common::errors::DiagnosticBuilder<'_>) { fn emit(&mut self, db: &mut swc_common::errors::DiagnosticBuilder<'_>) {
match db.level { match db.level {
swc_common::errors::Level::Bug swc_common::errors::Level::Bug
| swc_common::errors::Level::Fatal | swc_common::errors::Level::Fatal
+27 -16
View File
@@ -52,8 +52,8 @@ rayon = { workspace = true }
futures-channel = { workspace = true } futures-channel = { workspace = true }
krates = { workspace = true } krates = { workspace = true }
regex = "1.11.1" regex = "1.11.1"
console = "0.15.11" console = "0.16.0"
ctrlc = "3.4.5" ctrlc = "3.4.7"
axum = { workspace = true, default-features = true, features = ["ws"] } axum = { workspace = true, default-features = true, features = ["ws"] }
axum-server = { workspace = true, features = ["tls-rustls"] } axum-server = { workspace = true, features = ["tls-rustls"] }
@@ -67,7 +67,7 @@ syn = { workspace = true, features = [
"visit-mut", "visit-mut",
] } ] }
headers = "0.4.0" headers = "0.4.1"
walkdir = "2" walkdir = "2"
dunce = { workspace = true } dunce = { workspace = true }
@@ -77,24 +77,30 @@ reqwest = { workspace = true, features = ["rustls-tls", "trust-dns", "json"] }
tower = { workspace = true } tower = { workspace = true }
# path lookup # path lookup
which = { version = "7.0.2" } which = { version = "8.0.0" }
# plugin packages # plugin packages
open = { workspace = true } open = { workspace = true }
cargo-generate = "0.23.3" cargo-generate = "0.23.3"
toml_edit = "0.22.24" toml_edit = "0.22.27"
# formatting # formatting
# syn = { workspace = true } # syn = { workspace = true }
prettyplease = { workspace = true } prettyplease = { workspace = true }
# Assets # Assets
brotli = "7.0.0" brotli = "8.0.1"
ignore = "0.4.23" ignore = "0.4.23"
env_logger = { workspace = true } env_logger = { workspace = true }
const-serialize = { workspace = true, features = ["serde"] } const-serialize = { workspace = true, features = ["serde"] }
tracing-subscriber = { version = "0.3.19", features = ["std", "env-filter", "json", "registry", "fmt"] } tracing-subscriber = { version = "0.3.19", features = [
"std",
"env-filter",
"json",
"registry",
"fmt",
] }
console-subscriber = { version = "0.4.1", optional = true } console-subscriber = { version = "0.4.1", optional = true }
tracing = { workspace = true } tracing = { workspace = true }
wasm-opt = { version = "0.116.1", optional = true } wasm-opt = { version = "0.116.1", optional = true }
@@ -109,11 +115,11 @@ shell-words = { workspace = true }
log = { version = "0.4", features = ["max_level_off", "release_max_level_off"] } log = { version = "0.4", features = ["max_level_off", "release_max_level_off"] }
# link intercept # link intercept
tempfile = "3.13" tempfile = "3.19.1"
manganis = { workspace = true } manganis = { workspace = true }
manganis-core = { workspace = true } manganis-core = { workspace = true }
target-lexicon = { version = "0.13.2", features = ["serde", "serde_support"] } target-lexicon = { version = "0.13.2", features = ["serde", "serde_support"] }
wasm-encoder = "0.229.0" wasm-encoder = "0.235.0"
# Extracting data from an executable # Extracting data from an executable
object = { workspace = true, features = ["all"] } object = { workspace = true, features = ["all"] }
@@ -121,31 +127,36 @@ tokio-util = { workspace = true, features = ["full"] }
itertools = { workspace = true } itertools = { workspace = true }
throbber-widgets-tui = "0.8.0" throbber-widgets-tui = "0.8.0"
unicode-segmentation = "1.12.0" unicode-segmentation = "1.12.0"
handlebars = "6.3.1" handlebars = "6.3.2"
strum = { version = "0.27.1", features = ["derive"] } strum = { version = "0.27.1", features = ["derive"] }
memmap = "0.7.0" memmap = "0.7.0"
walrus = { workspace = true, features = ["parallel"]} walrus = { workspace = true, features = ["parallel"] }
wasmparser = { workspace = true } wasmparser = { workspace = true }
tauri-utils = { workspace = true } tauri-utils = { workspace = true }
tauri-bundler = { workspace = true } tauri-bundler = { workspace = true }
include_dir = "0.7.4" include_dir = "0.7.4"
flate2 = "1.1.0" flate2 = "1.1.2"
tar = "0.4.44" tar = "0.4.44"
local-ip-address = "0.6.3" local-ip-address = "0.6.5"
dircpy = "0.3.19" dircpy = "0.3.19"
plist = "1.7.0" plist = "1.7.4"
memoize = "0.5.1" memoize = "0.5.1"
backtrace = "0.3.74" backtrace = "0.3.74"
ar = "0.9.0" ar = "0.9.0"
wasm-bindgen-externref-xform = "0.2.100" wasm-bindgen-externref-xform = "0.2.100"
pdb = "0.8.0" pdb = "0.8.0"
self_update = { version = "0.42.0", features = ["archive-tar", "archive-zip", "compression-flate2", "compression-zip-deflate"] } self_update = { version = "0.42.0", features = [
"archive-tar",
"archive-zip",
"compression-flate2",
"compression-zip-deflate",
] }
self-replace = "1.5.0" self-replace = "1.5.0"
cargo-config2 = { workspace = true } cargo-config2 = { workspace = true }
[build-dependencies] [build-dependencies]
built = { version = "0.7.5", features = ["git2"] } built = { version = "0.8.0", features = ["git2"] }
[features] [features]
default = [] default = []
+1 -1
View File
@@ -3087,7 +3087,7 @@ impl BuildRequest {
/// Get the type of executable we are compiling /// Get the type of executable we are compiling
pub(crate) fn executable_type(&self) -> TargetKind { pub(crate) fn executable_type(&self) -> TargetKind {
self.crate_target.kind[0] self.crate_target.kind[0].clone()
} }
/// Get the features required to build for the given platform /// Get the features required to build for the given platform
+1 -1
View File
@@ -36,7 +36,7 @@ reqwest = { workspace = true }
tracing-subscriber = { workspace = true, default-features = true } tracing-subscriber = { workspace = true, default-features = true }
tracing-fluent-assertions = "0.3.0" tracing-fluent-assertions = "0.3.0"
pretty_assertions = { workspace = true } pretty_assertions = { workspace = true }
sysinfo = "0.33.1" sysinfo = "0.35.2"
[dev-dependencies.web-sys] [dev-dependencies.web-sys]
version = "0.3.77" version = "0.3.77"
+17 -17
View File
@@ -9,7 +9,7 @@ fn random_ns() -> Option<&'static str> {
match namespace { match namespace {
0 => None, 0 => None,
1 => Some(Box::leak( 1 => Some(Box::leak(
format!("ns{}", rand::random::<usize>()).into_boxed_str(), format!("ns{}", rand::random::<u8>()).into_boxed_str(),
)), )),
_ => unreachable!(), _ => unreachable!(),
} }
@@ -18,8 +18,8 @@ fn random_ns() -> Option<&'static str> {
fn create_random_attribute(attr_idx: &mut usize) -> TemplateAttribute { fn create_random_attribute(attr_idx: &mut usize) -> TemplateAttribute {
match rand::random::<u8>() % 2 { match rand::random::<u8>() % 2 {
0 => TemplateAttribute::Static { 0 => TemplateAttribute::Static {
name: Box::leak(format!("attr{}", rand::random::<usize>()).into_boxed_str()), name: Box::leak(format!("attr{}", rand::random::<u8>()).into_boxed_str()),
value: Box::leak(format!("value{}", rand::random::<usize>()).into_boxed_str()), value: Box::leak(format!("value{}", rand::random::<u8>()).into_boxed_str()),
namespace: random_ns(), namespace: random_ns(),
}, },
1 => TemplateAttribute::Dynamic { 1 => TemplateAttribute::Dynamic {
@@ -42,20 +42,20 @@ fn create_random_template_node(
match rand::random::<u8>() % 4 { match rand::random::<u8>() % 4 {
0 => { 0 => {
let attrs = { let attrs = {
let attrs: Vec<_> = (0..(rand::random::<usize>() % 10)) let attrs: Vec<_> = (0..(rand::random::<u8>() % 10))
.map(|_| create_random_attribute(attr_idx)) .map(|_| create_random_attribute(attr_idx))
.collect(); .collect();
Box::leak(attrs.into_boxed_slice()) Box::leak(attrs.into_boxed_slice())
}; };
TemplateNode::Element { TemplateNode::Element {
tag: Box::leak(format!("tag{}", rand::random::<usize>()).into_boxed_str()), tag: Box::leak(format!("tag{}", rand::random::<u8>()).into_boxed_str()),
namespace: random_ns(), namespace: random_ns(),
attrs, attrs,
children: { children: {
if depth > 4 { if depth > 4 {
&[] &[]
} else { } else {
let children: Vec<_> = (0..(rand::random::<usize>() % 3)) let children: Vec<_> = (0..(rand::random::<u8>() % 3))
.map(|_| { .map(|_| {
create_random_template_node( create_random_template_node(
dynamic_node_types, dynamic_node_types,
@@ -71,7 +71,7 @@ fn create_random_template_node(
} }
} }
1 => TemplateNode::Text { 1 => TemplateNode::Text {
text: Box::leak(format!("{}", rand::random::<usize>()).into_boxed_str()), text: Box::leak(format!("{}", rand::random::<u8>()).into_boxed_str()),
}, },
2 => TemplateNode::Dynamic { 2 => TemplateNode::Dynamic {
id: { id: {
@@ -127,11 +127,11 @@ enum DynamicNodeType {
Other, Other,
} }
fn create_random_template(depth: usize) -> (Template, Box<[DynamicNode]>) { fn create_random_template(depth: u8) -> (Template, Box<[DynamicNode]>) {
let mut dynamic_node_types = Vec::new(); let mut dynamic_node_types = Vec::new();
let mut template_idx = 0; let mut template_idx = 0;
let mut attr_idx = 0; let mut attr_idx = 0;
let roots = (0..(1 + rand::random::<usize>() % 5)) let roots = (0..(1 + rand::random::<u8>() % 5))
.map(|_| { .map(|_| {
create_random_template_node( create_random_template_node(
&mut dynamic_node_types, &mut dynamic_node_types,
@@ -166,7 +166,7 @@ fn create_random_template(depth: usize) -> (Template, Box<[DynamicNode]>) {
.iter() .iter()
.map(|ty| match ty { .map(|ty| match ty {
DynamicNodeType::Text => { DynamicNodeType::Text => {
DynamicNode::Text(VText::new(format!("{}", rand::random::<usize>()))) DynamicNode::Text(VText::new(format!("{}", rand::random::<u8>())))
} }
DynamicNodeType::Other => create_random_dynamic_node(depth + 1), DynamicNodeType::Other => create_random_dynamic_node(depth + 1),
}) })
@@ -174,7 +174,7 @@ fn create_random_template(depth: usize) -> (Template, Box<[DynamicNode]>) {
(Template { roots, node_paths, attr_paths }, dynamic_nodes) (Template { roots, node_paths, attr_paths }, dynamic_nodes)
} }
fn create_random_dynamic_node(depth: usize) -> DynamicNode { fn create_random_dynamic_node(depth: u8) -> DynamicNode {
let range = if depth > 5 { 1 } else { 3 }; let range = if depth > 5 { 1 } else { 3 };
match rand::random::<u8>() % range { match rand::random::<u8>() % range {
0 => DynamicNode::Placeholder(Default::default()), 0 => DynamicNode::Placeholder(Default::default()),
@@ -207,11 +207,11 @@ fn create_random_dynamic_node(depth: usize) -> DynamicNode {
fn create_random_dynamic_attr() -> Attribute { fn create_random_dynamic_attr() -> Attribute {
let value = match rand::random::<u8>() % 7 { let value = match rand::random::<u8>() % 7 {
0 => AttributeValue::Text(format!("{}", rand::random::<usize>())), 0 => AttributeValue::Text(format!("{}", rand::random::<u8>())),
1 => AttributeValue::Float(rand::random()), 1 => AttributeValue::Float(rand::random()),
2 => AttributeValue::Int(rand::random()), 2 => AttributeValue::Int(rand::random()),
3 => AttributeValue::Bool(rand::random()), 3 => AttributeValue::Bool(rand::random()),
4 => AttributeValue::any_value(rand::random::<usize>()), 4 => AttributeValue::any_value(rand::random::<u8>()),
5 => AttributeValue::None, 5 => AttributeValue::None,
6 => { 6 => {
let value = AttributeValue::listener(|e: Event<String>| println!("{:?}", e)); let value = AttributeValue::listener(|e: Event<String>| println!("{:?}", e));
@@ -220,7 +220,7 @@ fn create_random_dynamic_attr() -> Attribute {
_ => unreachable!(), _ => unreachable!(),
}; };
Attribute::new( Attribute::new(
Box::leak(format!("attr{}", rand::random::<usize>()).into_boxed_str()), Box::leak(format!("attr{}", rand::random::<u8>()).into_boxed_str()),
value, value,
random_ns(), random_ns(),
rand::random(), rand::random(),
@@ -229,17 +229,17 @@ fn create_random_dynamic_attr() -> Attribute {
#[derive(PartialEq, Props, Clone)] #[derive(PartialEq, Props, Clone)]
struct DepthProps { struct DepthProps {
depth: usize, depth: u8,
root: bool, root: bool,
} }
fn create_random_element(cx: DepthProps) -> Element { fn create_random_element(cx: DepthProps) -> Element {
let last_template = use_hook(|| Rc::new(RefCell::new(None))); let last_template = use_hook(|| Rc::new(RefCell::new(None)));
if rand::random::<usize>() % 10 == 0 { if rand::random::<u8>() % 10 == 0 {
needs_update(); needs_update();
} }
let range = if cx.root { 2 } else { 3 }; let range = if cx.root { 2 } else { 3 };
let node = match rand::random::<usize>() % range { let node = match rand::random::<u8>() % range {
// Change both the template and the dynamic nodes // Change both the template and the dynamic nodes
0 => { 0 => {
let (template, dynamic_nodes) = create_random_template(cx.depth + 1); let (template, dynamic_nodes) = create_random_template(cx.depth + 1);
+6 -6
View File
@@ -21,7 +21,7 @@ dioxus-asset-resolver = { workspace = true }
generational-box = { workspace = true } generational-box = { workspace = true }
dioxus-devtools = { workspace = true, optional = true } dioxus-devtools = { workspace = true, optional = true }
serde = "1.0.218" serde = "1.0.219"
serde_json = "1.0.140" serde_json = "1.0.140"
thiserror = { workspace = true } thiserror = { workspace = true }
tracing = { workspace = true } tracing = { workspace = true }
@@ -48,20 +48,20 @@ tao = { workspace = true, features = ["rwh_05"] }
dioxus-history = { workspace = true } dioxus-history = { workspace = true }
base64 = { workspace = true } base64 = { workspace = true }
open = { workspace = true } open = { workspace = true }
libc = "0.2.170" libc = "0.2.174"
pollster = "0.4.0" pollster = "0.4.0"
rand = { workspace = true, features = ["std_rng"] } rand = { workspace = true, features = ["std_rng"] }
subtle = { version = "2.6", features = ["const-generics"] } subtle = { version = "2.6", features = ["const-generics"] }
[target.'cfg(unix)'.dependencies] [target.'cfg(unix)'.dependencies]
signal-hook = "0.3.17" signal-hook = "0.3.18"
[target.'cfg(target_os = "linux")'.dependencies] [target.'cfg(target_os = "linux")'.dependencies]
wry = { workspace = true, features = ["os-webview", "protocol", "drag-drop", "linux-body"] } wry = { workspace = true, features = ["os-webview", "protocol", "drag-drop", "linux-body"] }
[target.'cfg(any(target_os = "windows",target_os = "macos",target_os = "linux",target_os = "dragonfly", target_os = "freebsd", target_os = "netbsd", target_os = "openbsd"))'.dependencies] [target.'cfg(any(target_os = "windows",target_os = "macos",target_os = "linux",target_os = "dragonfly", target_os = "freebsd", target_os = "netbsd", target_os = "openbsd"))'.dependencies]
global-hotkey = "0.7.0" global-hotkey = "0.7.0"
rfd = { version = "0.15.2", default-features = false, features = ["xdg-portal", "tokio"] } rfd = { version = "0.15.3", default-features = false, features = ["xdg-portal", "tokio"] }
muda = { workspace = true } muda = { workspace = true }
[target.'cfg(any(target_os = "windows",target_os = "macos",target_os = "linux"))'.dependencies] [target.'cfg(any(target_os = "windows",target_os = "macos",target_os = "linux"))'.dependencies]
@@ -89,8 +89,8 @@ openssl = { version = "0.10", features = ["vendored"], optional = true }
tungstenite = { workspace = true, features = ["native-tls"] } tungstenite = { workspace = true, features = ["native-tls"] }
[target.'cfg(target_os = "macos")'.dependencies] [target.'cfg(target_os = "macos")'.dependencies]
cocoa = "0.26.0" cocoa = "0.26.1"
core-foundation = "0.10.0" core-foundation = "0.10.1"
objc = "0.2.7" objc = "0.2.7"
[build-dependencies] [build-dependencies]
+2 -2
View File
@@ -345,7 +345,7 @@ fn create_secure_key() -> EncodedKey {
val val
} }
let mut secure_rng = assert_crypto_random(rand::rngs::StdRng::from_entropy()); let mut secure_rng = assert_crypto_random(rand::rngs::StdRng::from_os_rng());
let mut expected_key: EncodedKey = [0u8; KEY_SIZE]; let mut expected_key: EncodedKey = [0u8; KEY_SIZE];
secure_rng.fill_bytes(&mut expected_key); secure_rng.fill_bytes(&mut expected_key);
expected_key expected_key
@@ -353,7 +353,7 @@ fn create_secure_key() -> EncodedKey {
#[test] #[test]
fn test_key_encoding_length() { fn test_key_encoding_length() {
let mut rand = rand::rngs::StdRng::from_entropy(); let mut rand = rand::rngs::StdRng::from_os_rng();
for _ in 0..100 { for _ in 0..100 {
let mut key: EncodedKey = [0u8; KEY_SIZE]; let mut key: EncodedKey = [0u8; KEY_SIZE];
rand.fill_bytes(&mut key); rand.fill_bytes(&mut key);
+1 -1
View File
@@ -37,7 +37,7 @@ fn create_rows(c: &mut Criterion) {
} }
fn app() -> Element { fn app() -> Element {
let mut rng = SmallRng::from_entropy(); let mut rng = SmallRng::from_os_rng();
rsx! ( rsx! (
table { table {
+2 -2
View File
@@ -52,7 +52,7 @@ hyper-rustls = { workspace = true, optional = true }
pin-project = { version = "1.1.10", optional = true } pin-project = { version = "1.1.10", optional = true }
thiserror = { workspace = true, optional = true } thiserror = { workspace = true, optional = true }
bytes = "1.10.0" bytes = "1.10.1"
tower = { workspace = true, features = ["util"], optional = true } tower = { workspace = true, features = ["util"], optional = true }
tower-layer = { version = "0.3.3", optional = true } tower-layer = { version = "0.3.3", optional = true }
parking_lot = { workspace = true, features = ["send_guard"], optional = true } parking_lot = { workspace = true, features = ["send_guard"], optional = true }
@@ -68,7 +68,7 @@ web-sys = { version = "0.3.77", optional = true, features = [
dioxus-cli-config = { workspace = true, optional = true } dioxus-cli-config = { workspace = true, optional = true }
dioxus-devtools = { workspace = true, optional = true } dioxus-devtools = { workspace = true, optional = true }
aws-lc-rs = { version = "1.12.5", optional = true } aws-lc-rs = { version = "1.13.1", optional = true }
dioxus-history = { workspace = true } dioxus-history = { workspace = true }
[dev-dependencies] [dev-dependencies]
+2 -1
View File
@@ -1,7 +1,8 @@
#![allow(unused)] #![allow(unused)]
use generational_box::*; use generational_box::*;
use criterion::{black_box, criterion_group, criterion_main, Criterion}; use criterion::{criterion_group, criterion_main, Criterion};
use std::hint::black_box;
fn create<S: Storage<u32>>(owner: &Owner<S>) -> GenerationalBox<u32, S> { fn create<S: Storage<u32>>(owner: &Owner<S>) -> GenerationalBox<u32, S> {
owner.insert(0) owner.insert(0)
+1 -1
View File
@@ -28,7 +28,7 @@ serde_json = { workspace = true, optional = true }
tracing = { workspace = true } tracing = { workspace = true }
rustversion = { workspace = true } rustversion = { workspace = true }
euclid = "0.22.11" euclid = "0.22.11"
enumset = "1.1.5" enumset = "1.1.6"
[build-dependencies] [build-dependencies]
lazy-js-bundle = { workspace = true } lazy-js-bundle = { workspace = true }
@@ -11,5 +11,5 @@ dioxus = { workspace = true, features = ["web"] }
[build-dependencies] [build-dependencies]
reqwest = { workspace = true, features = ["blocking"] } reqwest = { workspace = true, features = ["blocking"] }
flate2 = "1.1.0" flate2 = "1.1.2"
tar = "0.4.44" tar = "0.4.44"
@@ -8,7 +8,7 @@ publish = false
[dependencies] [dependencies]
dioxus = { workspace = true, features = ["fullstack"] } dioxus = { workspace = true, features = ["fullstack"] }
serde = "1.0.218" serde = "1.0.219"
tokio = { workspace = true, features = ["full"], optional = true } tokio = { workspace = true, features = ["full"], optional = true }
[features] [features]
@@ -8,7 +8,7 @@ publish = false
[dependencies] [dependencies]
dioxus = { workspace = true, features = ["fullstack", "router"] } dioxus = { workspace = true, features = ["fullstack", "router"] }
serde = "1.0.159" serde = "1.0.219"
tokio = { workspace = true, features = ["full"], optional = true } tokio = { workspace = true, features = ["full"], optional = true }
[features] [features]
@@ -9,7 +9,7 @@ publish = false
[dependencies] [dependencies]
dioxus = { workspace = true, features = ["fullstack"] } dioxus = { workspace = true, features = ["fullstack"] }
futures.workspace = true futures.workspace = true
serde = "1.0.218" serde = "1.0.219"
tokio = { workspace = true, features = ["full"], optional = true } tokio = { workspace = true, features = ["full"], optional = true }
[features] [features]
@@ -8,7 +8,7 @@ publish = false
[dependencies] [dependencies]
dioxus = { workspace = true, features = ["fullstack"] } dioxus = { workspace = true, features = ["fullstack"] }
serde = "1.0.218" serde = "1.0.219"
tokio = { workspace = true, features = ["full"], optional = true } tokio = { workspace = true, features = ["full"], optional = true }
[features] [features]
@@ -6,8 +6,8 @@ publish = false
[dependencies] [dependencies]
dioxus = { workspace = true, features = ["fullstack"] } dioxus = { workspace = true, features = ["fullstack"] }
async-std = "1.13.0" async-std = "1.13.1"
serde = "1.0.218" serde = "1.0.219"
[features] [features]
default = [] default = []
@@ -9,11 +9,22 @@ authors = ["Jonathan Kelley"]
dioxus = { workspace = true, features = ["web", "router", "wasm-split"] } dioxus = { workspace = true, features = ["web", "router", "wasm-split"] }
dioxus-router = { workspace = true, features = ["wasm-split"] } dioxus-router = { workspace = true, features = ["wasm-split"] }
anyhow = { workspace = true } anyhow = { workspace = true }
async-compression = { workspace = true, features = ["futures-io", "gzip", "brotli"] } async-compression = { workspace = true, features = [
"futures-io",
"gzip",
"brotli",
] }
futures = { workspace = true } futures = { workspace = true }
js-sys = { workspace = true } js-sys = { workspace = true }
wasm-bindgen = { workspace = true } wasm-bindgen = { workspace = true }
wasm-bindgen-futures = { workspace = true } wasm-bindgen-futures = { workspace = true }
web-sys = { workspace = true, features = ["Document", "Window", "HtmlElement", "Text", "DomRectReadOnly", "console"] } web-sys = { workspace = true, features = [
getrandom = { workspace = true, features = ["js"] } "Document",
"Window",
"HtmlElement",
"Text",
"DomRectReadOnly",
"console",
] }
getrandom = { workspace = true, features = ["wasm_js"] }
reqwest = { workspace = true, features = ["json"] } reqwest = { workspace = true, features = ["json"] }
+6 -6
View File
@@ -24,7 +24,7 @@ tower-http = { workspace = true, features = ["fs"], optional = true }
tokio-util = { workspace = true, features = ["rt"], optional = true } tokio-util = { workspace = true, features = ["rt"], optional = true }
tokio-stream = { workspace = true, features = ["sync"], optional = true } tokio-stream = { workspace = true, features = ["sync"], optional = true }
tower = { workspace = true, features = ["util"], optional = true} tower = { workspace = true, features = ["util"], optional = true}
tower-layer = { version = "0.3.2", optional = true} tower-layer = { version = "0.3.3", optional = true}
hyper-util = { workspace = true, features = ["full"], optional = true } hyper-util = { workspace = true, features = ["full"], optional = true }
hyper = { workspace = true, optional = true } hyper = { workspace = true, optional = true }
http = { workspace = true } http = { workspace = true }
@@ -41,7 +41,7 @@ tracing = { workspace = true }
tracing-futures = { workspace = true } tracing-futures = { workspace = true }
async-trait = { workspace = true } async-trait = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
enumset = "1.1.5" enumset = "1.1.6"
futures-util = { workspace = true } futures-util = { workspace = true }
futures-channel = { workspace = true } futures-channel = { workspace = true }
@@ -50,11 +50,11 @@ base64 = { workspace = true }
rustls = { workspace = true, optional = true } rustls = { workspace = true, optional = true }
hyper-rustls = { workspace = true, optional = true } hyper-rustls = { workspace = true, optional = true }
pin-project = { version = "1.1.2" } pin-project = { version = "1.1.10" }
thiserror = { workspace = true } thiserror = { workspace = true }
bytes = "1.4.0" bytes = "1.10.1"
parking_lot = { workspace = true, features = ["send_guard"] } parking_lot = { workspace = true, features = ["send_guard"] }
web-sys = { version = "0.3.61", features = [ web-sys = { version = "0.3.77", features = [
"Window", "Window",
"Document", "Document",
"Element", "Element",
@@ -65,7 +65,7 @@ web-sys = { version = "0.3.61", features = [
dioxus-cli-config = { workspace = true } dioxus-cli-config = { workspace = true }
dioxus-devtools = { workspace = true, optional = true } dioxus-devtools = { workspace = true, optional = true }
aws-lc-rs = { version = "1.8.1", optional = true } aws-lc-rs = { version = "1.13.1", optional = true }
dioxus-history = { workspace = true } dioxus-history = { workspace = true }
subsecond.workspace = true subsecond.workspace = true
inventory = { workspace = true } inventory = { workspace = true }