Skip to content

Update cargo dependencies (libwebrtc) - #1387

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/cargo-dependencies-(libwebrtc)
Open

Update cargo dependencies (libwebrtc)#1387
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/cargo-dependencies-(libwebrtc)

Conversation

@renovate

@renovate renovate Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change Pending
cxx (source) dependencies patch 1.0.1981.0.199 1.0.200
glib (source) dependencies minor 0.21.30.22.0 0.22.9
jni dependencies minor 0.210.22
js-sys (source) dependencies patch 0.3.1030.3.104 0.3.105
rtrb dependencies minor 0.3.30.4.0
wasm-bindgen (source) dependencies patch 0.2.1260.2.127 0.2.128
wasm-bindgen-futures (source) dependencies patch 0.4.760.4.77 0.4.78
web-sys (source) dependencies patch 0.3.1030.3.104 0.3.105

Release Notes

dtolnay/cxx (cxx)

v1.0.199

Compare Source

  • Suppress clone_on_copy clippy lint in generated code (#​1747)
gtk-rs/gtk-rs-core (glib)

v0.22.8

Compare Source

Alba Mendez:
      fix typo in ObjectExt::property_value docs

Sebastian Dröge:
      Update gir / gir-files
      Regenerate with latest gir / gir-files
      gio: Add forgotten socket_msg_flags modules to lib.rs
      Add various missing Gir.toml checks
      Remove various unused dependencies
      gio: Fix code style
      gio-unix: Fix order of types in Gir.toml
      gio: Add missing `unsafe`
      Add AI contribution policy section to the README.md
      Update Cargo.lock
      Update versions to 0.22.8

Tau Gärtli:
      Add safe wrapper for g_log_writer_default_set_debug_domains

Tomoaki Kawada:
      glib: gate `BookmarkFile` with `cfg(feature = "v2.76")`
      glib: remove `g_bookmark_file_copy` polyfill
      glib: require `A: 'static` in `Variant::from_data[_with_type][_trusted]`

v0.22.7

Compare Source

Sebastian Dröge:
      glib: collections: Fix theoretical use-after-frees if dropping an item panics
      glib: collections: list: Fix use-after-free in `retain()` when removing the list head
      Update versions to 0.22.7

v0.22.6

Compare Source

Dario Marino Saccavino:
      gio-unix: Do not expose DesktopAppInfo on macos

Sebastian Dröge:
      glib: Move compile tests from trybuild2 to trybuild
      glib-macros: Move compile tests from trybuild2 to trybuild
      Update Cargo.lock
      glib-win32: Fix docs build
      Regenerate with latest gir-files
      win32: Mark `get_package_installation_directory_of_module()` as manual
      glib: Add new `v2_90` version feature
      glib: Fix a couple of new clippy warnings
      glib-win32: Add back deprecated versions of package installation directory functions
      Update versions to 0.22.6

github-actions[bot]:
      Update gir-files

v0.22.5

Compare Source

Arun Mani J:
      glib: Create safe bindings for `BookmarkFile`

Martin Nordholts:
      gio: Add "D-Bus" and "DBus" to Cargo.toml keywords and description
      gio: Remove "gio" from package.keywords

Sebastian Dröge:
      Update versions to 0.22.5

v0.22.4

Compare Source

Bilal Elmoussaoui:
      glib: Allow setting FINAL/DEPRECATED flags
      ci: Only run compile tests on glib crate
      Fix typos job

Ignacio Casal Quinteiro:
      glib-win32: fix export of function

Sebastian Dröge:
      Update gir / gir-files
      Regenerate with latest gir / gir-files
      rustfmt: Update to 2024 edition
      glib: Make sure to acquire the main context and make it thread default in `MainContext::block_on()`
      glib: Add various `#[allow(deprecated)]` to `glib::wrapper!` for when the parent class/interface is deprecated
      Update versions to 0.22.4

v0.22.3

Compare Source

Carlos Martín Nieto:
      glib: use `pointer::addr()` to resolve strict provenance lint
      glib: use exposed provenance when we cannot copy one
      glib: make use of `mem::offset_of!()`

Sebastian Dröge:
      Update gir-files
      Regenerate with latest gir-files
      Update versions to 0.22.3

v0.22.2

Compare Source

Julian Sparber:
      glib: Implement From<PtrSlice<GStringPtr> for StrV
      glib: Implement From<StrV> for PtrSlice<GStringPtr>

Sebastian Dröge:
      gio: Mark `Socket::from_raw_socket()` as unsafe

Wladimir Palant:
      glib-macros: Silence “redundant closure” clippy warning in closure!/closure_local!

v0.22.0

Compare Source

Bernhard M. Wiedemann:
      glib-macros: Use BTreeMap instead of HashMap

Biagio Festa:
      glib-macros/async_test: unwrap result when setting default context
      glib-macros/async_test: dont move main context within closure
      glib/bytes: relax start offset constraint for `from_bytes`

Bilal Elmoussaoui:
      ci: Switch from gsvbuild to MSVC
      Generate bindings for win32/unix GLib/Gio
      Build new crates on CI
      gio/unix: Remove the manual fallback for MountEntry
      glib: Lower host dep requirement
      glib/unix: Add missing futures feature
      gio/unix: Ignore a clippy lint
      gio: Comment out a test & drop UnixFdMessage
      gio/tests: Remove no longer useful headers
      gio: Move various config options to gio-unix
      glib: Remove no longer needed manual ffi functions
      glib/sys: Don't generate UnixPipe
      Regenerate with fixed GIR files
      glib/source: Fix imports on Win32
      glib/win32: Add missing imports
      gio/win32: Manually implement streams
      gio/win32: Add a type for GNetworkMonitorBase and drop duplicated manual ones
      gio/win32: Add missing dep
      deny: Drop no longer needed skips
      Add missing licenses
      Adapt to rust nightly docs changes
      gio: Move test to gio-unix
      gdk-pixbuf: Ignore another clippy lint
      Fix docs for new crates
      Force update windows-sys for new crates
      win32: Always depend on windows-sys
      win32: Guard std::os::windows usage
      gio/win32: Add missing feature
      Re-export preludes
      glib: Use 'static lifetime for nick/name
      Use 'a lifetime instead
      glib: Mark push_thread_default as renamed

Casey Jao:
      Clarify the GObject subclass mechanism
      Add missing comment markers
      Update glib/src/subclass/mod.rs
      Clarify Rust-C analogy for external interface
      Improve diagram
      Fix alignment

François Laignel:
      gio: fix compilation with beta toolchain

Guillaume Gomez:
      Update `trybuild2` version to `1.3.0`

Marc-André Lureau:
      glib: fix GStringBuilder::copy_into
      glib-macros: make proc-macro-crate optional
      glib: add 'futures' feature
      workspace: use glib default-features = false

Maximiliano Sandoval:
      image: Add python3-requests
      binding_group: Rename transform fns to with_value
      binding_group: Add lifetimes to BindingBuilder fns
      binding_group: Add transforms with concrete types
      binding_group: Add test for concrete transforms

Philipp Jungkamp:
      gio: Fix segfault in ListStore::find_with_equal_func
      gio: Add exit_code methods to ApplicationCommandLine
      gio: Remove {set,get}_exit_status from Gir generation
      gio: Fix ApplicationCommandLineExtManual draft
      glib: Add logging bridge for structured logs

Renyi Zhao:
      glib: Fix misuse of operator in subtract_days
      pango: Fix out-of-bounds access in itemize functions
      graphene: Fix UB in intersect_triangle by validating t_out before assume_init
      cairo: Add bounds check for nth in region_get_rectangle to prevent UB
      cairo: Fix integer overflow in create_for_data's len check
      glib: Fix UB in spawn_async_with_pipes by validating success before assume_init

Rose Davidson:
      cairo: Fix return type for cairo_script_create_for_stream.
      cairo: write-to-stream callbacks should accept const pointers to data

Sebastian Dröge:
      Post release version bump
      Deploy 0.21 docs and drop 0.15 docs
      glib: Fix new clippy warnings
      glib: Only build regex compiletests if the corresponding feature is enabled
      glib: Fix segfault in `List::retain()`
      glib: Compare lengths in `<StrV as PartialEq<[&str]>>::eq` too
      glib: Null-terminate on every iteration in `PtrSlice::extend_from_slice`
      glib: Avoid more integer overflows when reserving space in `PtrSlice` / `Slice` / `StrV`
      Update Cargo.lock
      gio: Make etag in `File::replace_contents_async()` optional
      glib-macros: Make main context the thread-default one in `#[async_test]`
      pango: Generate new `FontColor` enum
      pango: Add new `v1_57` feature
      ci: Don't build pango with `--all-features` for now
      glib: Fix pointer signedness
      gio: `DataInputStream::read_line_async()` can return `None` slices
      gio: Use correct finish function for `DataInputStream::read_line_utf8_async()`
      Update Cargo.lock
      Allows windows-sys 0.61 too
      Update Cargo.lock
      deny: Update
      pango: Fix off-by-one in assertion for `pango::itemize()`
      glib: Update expected compiler error texts in compiletests for rustc 1.90
      glib: Fix some new 1.90 clippy warnings
      Update dependencies
      glib: Fix typo in comment
      gio: Fix typo in docs
      Update MSRV to 1.86
      Update all dependencies
      Switch MSRV CI to 1.86
      glib: Fix typo in docs
      ci: Only run glib-macros tests on stable
      gio: Remove pointless, empty build.rs
      glib: Fix `Regex::match` API
      glib: Add some missing debug assertions to the `Regex` API
      gio: Fix GSettings test
      Update gir
      Regenerate with latest gir
      Remove `--cfg docsrs` from the Cargo.tomls
      Update docs.rs hacks in cairo-sys build.rs
      Don't pass `--cfg docsrs` via RUSTFLAGS on the CI
      glib: Clean up `Regex` tests
      Update various dependencies
      glib-sys: Add type aliases for all the GLib types
      Update MSRV to 1.92
      Fix new clippy warnings
      Update Cargo.lock
      Update versions to 0.22.0-alpha.1
      Add missing package metadata to Unix/Win32 crates
      Add more missing package metadata to Unix/Win32 crates
      Lower local workspace dependencies to any alpha version
      Add workspace dependencies for Unix/Win32 crates
      Untangle Win32/Unix crate dependencies some more
      gio-win32: Fix FFI crate name
      Run `cargo fix --edition`
      Update to edition 2024
      Change various code to avoid too early dropped temporaries
      glib-macros: Fix downgrade macro
      gio: Remove unnecessary parenthesis around type
      Remove unnecessary unsafe blocks
      Update gir
      Regenerate with latest gir
      gio: Fix indentation
      glib: Allow wrapper macro to expand unsafe blocks
      Fix a couple of new clippy warnings
      Update versions to 0.22.0-alpha.2
      Update Cargo.lock
      Update to `resolver = "3"`
      glib: Mark `setenv()` / `unsetenv()` as unsafe
      Update GLib 2.88 version requirement to >= 2.87 and 2.86 to >= 2.86
      glib-unix: Mark g_closefrom() as unsafe
      gio: Generate new API
      gio: Add missing v2_88 feature
      ci: Run glib/gio tests with v2_88
      Update Cargo.lock
      Update versions to 0.22.0-alpha.2
      cairo: Use dynamically linked x11-dl crate instead of x11
      glib: Move some Windows-specific unsafe code in unsafe functions into unsafe blocks
      Update gir
      Regenerate with latest gir
      gio: Add back `Socket::from_raw_fd()` / `::from_raw_socket()`
      Update gir
      Regenerate with latest gir
      Update dependencies
      Update versions to 0.22.0

Sebastian Wiesner:
      Impl AsFd for FileDescriptorBased
      Implement Display for ObjectPath
      Add subscribe_to_signal
      Use "named" parameters for subscribe_to_signal
      Add receive_signal and receive_signal_parameters
      Add simple example about DBus signals

Tau Gärtli:
      Generate Gio.DBusObjectManagerClient
      Move customized auto-generate code to manual
      Combine impls
      Mark as send+sync
      Ignore C APIs
      Manually implement interface-proxy-properties-changed
      Suppress doc alias from checker
      Split constructors to simplify signature
      Update gir and no longer needed remove manual impls
      Regen other crates
      Split sync methods into overloads with and without fn
      Split async+callback methods into overloads with and without fn
      Overloads for new_for_bus
      gio: Make DBusProxy subclassable
      gio: Add object manager example

Thibault Saunier:
      glib: Add Error::with_domain constructor and code getter

Tomoaki Kawada:
      glib: Fix overflow in `StrV::reserve` when checking capacity
      glib: Fix overflow in `StrV::extend_from_slice` when checking capacity
      glib: Null-terminate on every iteration in `StrV::extend_from_slice`
      glib: Compare lengths in `<StrVRef as PartialEq<[&str]>>::eq`

Zachary S:
      glib: Don't drop `T` if `ThreadGuard<T>` is dropped on the wrong thread.
      glib: Don't double-panic if `ThreadGuard::into_inner` is called on the wrong thread.

fbrouille:
      Add gio::IOModule and gio::IOModuleScope
      Add gio::File
      Fix gio::file::measure_disk_usage
      Add an example for gio::Vfs implementation
      Add gio::subclass::FileEnumerator async vfuncs
jni-rs/jni-rs (jni)

v0.22.4

Compare Source

Added
  • JCharSequence bindings for java.lang.CharSequence (including AsRef<JCharSequence> + .as_char_sequence() for JString) (#​793)
  • bind_java_type supports non_null qualifier/property for methods and fields to map null references to Error::NullPtr (#​795)
  • bind_java_type supports #[cfg()] attributes on methods and fields, to conditionally compile them based on features or other cfg conditions (#​797)
  • JValueOwned::check_null() + ::is_null() methods for ergonomic null checks on owned (returned) values (#​798)
  • More readable type accessors for JValueOwned, like .into_bool() instead of .z(), .into_object() instead of .l(), etc (#​798)
Fixed
  • jni_mangle now includes docs/macros/jni_mangle.md in the crate documentation, so the macro's documentation is visible on docs.rs and in IDEs (#​799)

v0.22.3

Compare Source

Fixed
  • docs.rs build: Bumps simd_cesu8 dep to >= 1.1.1 which no longer has an automatically-enabled
    "nightly" feature that may affect the docs.rs build (1.1.x is now also MSRV compatible) (#​790)

v0.22.2

Compare Source

Note: although no breaking API change was made in this release there were some important fixes
made, including a few non-trivial changes to how exceptions are handled and some important safety /
soundness fixes made in the re-exported jni-macros.

For these reasons I'm going to again yank the previous 0.22.1 release after this is published,
again taking into account that 0.22.1 was itself only released very recently and it should still be
relatively unlikely that anyone has strictly locked in a 0.22.1 dependency.

Another benefit to yanking 0.22.1 is that it allows me to pin the jni-macros dependency via
=0.22.2 in this release so that in future releases I don't need to be worried that a new
jni-macros release needs to be backwards compatible with all prior jni releases (so macros can
take advantage of new jni features).

Hopefully things will be smoother moving forward, now that more people have been starting to update
to 0.22.x and there are more people testing it.

Added

Adds bindings for the following java.lang errors / exceptions (#​767):

  • JArrayIndexOutOfBoundsException (java.lang.ArrayIndexOutOfBoundsException)
  • JArrayStoreException (java.lang.ArrayStoreException)
  • JClassCircularityError (java.lang.ClassCircularityError)
  • JClassFormatError (java.lang.ClassFormatError)
  • JExceptionInInitializerError (java.lang.ExceptionInInitializerError)
  • JClassNotFoundException (java.lang.ClassNotFoundException)
  • JIllegalArgumentException (java.lang.IllegalArgumentException)
  • JIllegalMonitorStateException (java.lang.IllegalMonitorStateException)
  • JInstantiationException (java.lang.InstantiationException)
  • JLinkageError (java.lang.LinkageError)
  • JNoClassDefFoundError (java.lang.NoClassDefFoundError)
  • JNoSuchFieldError (java.lang.NoSuchFieldError)
  • JNoSuchMethodError (java.lang.NoSuchMethodError)
  • JNumberFormatException (java.lang.NumberFormatException)
  • JOutOfMemoryError (java.lang.OutOfMemoryError)
  • JRuntimeException (java.lang.RuntimeException)
  • JSecurityException (java.lang.SecurityException)
  • JStringIndexOutOfBoundsException (java.lang.StringIndexOutOfBoundsException)

Added AttachmentExceptionPolicy enum to control how Java exceptions are handled when attaching a thread (#​768).

Changed
  • Replaced cesu8 crate with simd_cesu8 for MUTF-8 encoding, gaining SIMD acceleration and no_std compatibility
  • Removed dependency on paste crate (#​752)
  • attach_current_thread* APIs immediately return Err(JavaException) if a Java exception is pending, so they don't have the side effect of clearing exceptions not thrown in the given closure (#​756)
  • Removed proc-macro-crate dependency from the jni-macros crate (#​758)
  • All internal use of JNI functions (not general calls into Java code) now catch exceptions and map to jni::errors::Error (#​762)
  • JavaVM::attach_current_thread* APIs stash + re-throw pending exceptions so they can be run reliably, instead of bailing early with a JavaException error (e.g. needed in Drop implementations) (#​768)
Fixed
  • Env::get_[static_]method/field_id APIs now correctly clear + map internal exceptions to Error::Method/FieldNotFound errors (#​748)
  • Global/Weak::Drop no longer have the side effect of catching/clearing pending exceptions (#​749)
  • Ensure that the Env::throw* APIs actually return Err(JavaException) as the docs state (#​755)
  • JStackTraceElement binding fixed to lookup isNativeMethod instead of isNative (#​760)
  • bind_java_type emits exception_checks before JNI calls to avoid undefined behaviour from calling non-exception-safe JNI functions with pending exceptions. (#​757)
  • bind_java_type emits env.assert_top() checks to ensure that any new local reference has a lifetime that's associated with the top JNI stack frame (#​776)
  • Unsound AsRef pointer cast for is_instance_of types emitted by bind_java_type (#​777)
  • bind_java_type emits null object checks to prevent calling methods or accessing fields on null objects (#​781)
  • bind_java_type clamps the *API struct and native methods trait visibility to that of the binding type (#​785)

v0.22.1

Compare Source

Note: although no breaking API change was made in this release there were some important fixes
made, including a few non-trivial changes to how exceptions are handled and some important safety /
soundness fixes made in the re-exported jni-macros.

For these reasons I'm going to again yank the previous 0.22.1 release after this is published,
again taking into account that 0.22.1 was itself only released very recently and it should still be
relatively unlikely that anyone has strictly locked in a 0.22.1 dependency.

Another benefit to yanking 0.22.1 is that it allows me to pin the jni-macros dependency via
=0.22.2 in this release so that in future releases I don't need to be worried that a new
jni-macros release needs to be backwards compatible with all prior jni releases (so macros can
take advantage of new jni features).

Hopefully things will be smoother moving forward, now that more people have been starting to update
to 0.22.x and there are more people testing it.

Added

Adds bindings for the following java.lang errors / exceptions (#​767):

  • JArrayIndexOutOfBoundsException (java.lang.ArrayIndexOutOfBoundsException)
  • JArrayStoreException (java.lang.ArrayStoreException)
  • JClassCircularityError (java.lang.ClassCircularityError)
  • JClassFormatError (java.lang.ClassFormatError)
  • JExceptionInInitializerError (java.lang.ExceptionInInitializerError)
  • JClassNotFoundException (java.lang.ClassNotFoundException)
  • JIllegalArgumentException (java.lang.IllegalArgumentException)
  • JIllegalMonitorStateException (java.lang.IllegalMonitorStateException)
  • JInstantiationException (java.lang.InstantiationException)
  • JLinkageError (java.lang.LinkageError)
  • JNoClassDefFoundError (java.lang.NoClassDefFoundError)
  • JNoSuchFieldError (java.lang.NoSuchFieldError)
  • JNoSuchMethodError (java.lang.NoSuchMethodError)
  • JNumberFormatException (java.lang.NumberFormatException)
  • JOutOfMemoryError (java.lang.OutOfMemoryError)
  • JRuntimeException (java.lang.RuntimeException)
  • JSecurityException (java.lang.SecurityException)
  • JStringIndexOutOfBoundsException (java.lang.StringIndexOutOfBoundsException)

Added AttachmentExceptionPolicy enum to control how Java exceptions are handled when attaching a thread (#​768).

Changed
  • Replaced cesu8 crate with simd_cesu8 for MUTF-8 encoding, gaining SIMD acceleration and no_std compatibility
  • Removed dependency on paste crate (#​752)
  • attach_current_thread* APIs immediately return Err(JavaException) if a Java exception is pending, so they don't have the side effect of clearing exceptions not thrown in the given closure (#​756)
  • Removed proc-macro-crate dependency from the jni-macros crate (#​758)
  • All internal use of JNI functions (not general calls into Java code) now catch exceptions and map to jni::errors::Error (#​762)
  • JavaVM::attach_current_thread* APIs stash + re-throw pending exceptions so they can be run reliably, instead of bailing early with a JavaException error (e.g. needed in Drop implementations) (#​768)
Fixed
  • Env::get_[static_]method/field_id APIs now correctly clear + map internal exceptions to Error::Method/FieldNotFound errors (#​748)
  • Global/Weak::Drop no longer have the side effect of catching/clearing pending exceptions (#​749)
  • Ensure that the Env::throw* APIs actually return Err(JavaException) as the docs state (#​755)
  • JStackTraceElement binding fixed to lookup isNativeMethod instead of isNative (#​760)
  • bind_java_type emits exception_checks before JNI calls to avoid undefined behaviour from calling non-exception-safe JNI functions with pending exceptions. (#​757)
  • bind_java_type emits env.assert_top() checks to ensure that any new local reference has a lifetime that's associated with the top JNI stack frame (#​776)
  • Unsound AsRef pointer cast for is_instance_of types emitted by bind_java_type (#​777)
  • bind_java_type emits null object checks to prevent calling methods or accessing fields on null objects (#​781)
  • bind_java_type clamps the *API struct and native methods trait visibility to that of the binding type (#​785)

v0.22.0

Compare Source

Added
JavaVM / Thread Attachment APIs
  • JavaVM::singleton() lets you acquire the JavaVM for the process when you know that the JavaVM singleton has been initialized (#​595)
  • JavaVM::is_thread_attached can query whether the current thread is attached to the Java VM (#​570)
  • AttachGuard::from_unowned added as a low-level (unsafe) way to represent a thread attachment with a raw jni_sys::Env pointer (#​570)
  • AttachConfig exposes fine-grained control over thread attachment including Thread name, ThreadGroup and whether scoped or permanent. (#​606)
  • JavaVM::attach_current_thread_guard is a low-level (unsafe) building block for attaching threads that exposes the AttachGuard and AttachConfig control. (#​606)
  • JavaVM::attach_current_thread_with_config is a safe building block for attaching threads that hides the AttachGuard but exposes AttachConfig control. (#​606)
  • JavaVM::with_local_frame added as method to borrow a Env that is already attached to the current thread, after pushing a new JNI stack frame (#​570, #​673)
  • JavaVM::with_top_local_frame_frame added to borrow a Env for the top JNI stack frame (i.e. without pushing a new JNI stack frame) (#​570, #​673)
Reference Type APIs
  • A Reference trait for all reference types like JObject, JClass, JString, enabling Global and Weak to be generic over Reference and enabling safe casting and global caching of JClass references. (#​596)
  • Reference::lookup_class exposes a cached Global<JClass> for all Reference implementations (#​612)
  • LoaderContext + LoaderContext::load_class for loading classes, depending on available context (#​612)
  • Env::new_cast_global_ref acts like new_global_ref with a type cast (#​612)
  • Env::cast_global takes an owned Global<From> and returns an owned Global<To> (#​612)
  • Env::new_cast_local_ref acts like new_local_ref with a type cast (#​612)
  • Env::cast_local takes an owned local reference and returns a new type-cast wrapper (owned) (#​612)
  • Env::as_cast or Cast::new borrows any From: Reference (global or local) reference and returns a Cast<To> that will Deref into &To (#​612)
  • Env::as_cast_unchecked returns a Cast<To> like as_cast() but without a runtime IsInstanceOf check (#​669)
  • Env::as_cast_raw or Cast::from_raw borrows a raw jobject reference and returns a Cast<To> that will Deref into &To
  • Cast::new_unchecked and Cast::from_raw_unchecked let you borrow a reference with an (unsafe) type cast, with no runtime check
  • ::cast_local() methods as a convenience for all reference types, such as let s = JString::cast_local(obj)
  • const null() methods for all reference types.
  • Global::null() and Weak::null() construct null references (equivalent to Default::default()). (#​596)
JNI Environment APIs
  • Env::call_nonvirtual_method and Env::call_nonvirtual_method_unchecked to call non-virtual method. (#​454)
  • Env::to_reflected_method and Env::to_reflected_static_method for retrieving the Java reflection API instance for a method or constructor. (#​579)
  • Env::throw_new_void provides an easy way to throw an exception that's constructed with no message argument
  • Env::new_object_type_array<E> lets you you instantiate a JObjectArray with a given element type like new_object_type_array::<JString>
  • Env::load_class supports class lookups via the current Thread context class loader, with FindClass fallback. (#​674)
  • MethodSignature and FieldSignature types have been added for compile-time parsed JNI method and field signatures
Native Method APIs
  • EnvUnowned is an FFI-safe type that can be used to capture a jni_sys::Env pointer given to native methods and give it a named lifetime (this can then be temporarily upgraded to a &mut Env reference via EnvUnowned::with_env) (#​570)
  • Outcome is like a Result with the addition of a third Panic() variant, used for careful handling of errors in native methods. (#​664)
  • EnvOutcome represents an EnvUnowned::with_env outcome whose errors can be handle, with access to JNI, via an ErrorPolicy. (#​664)
  • ErrorPolicy is a trait with on_error and on_panic methods that can log native method errors or throw them as exceptions. (#​664)
  • ThrowRuntimeExAndDefault is an ErrorPolicy that throws any error as a RuntimeException (and returns a default value). (#​664)
  • LogErrorAndDefault is an ErrorPolicy that logs errors and returns a default value. (#​664)
  • LogContextErrorAndDefault is an ErrorPolicy that logs errors, with a given context string, and returns a default value. (#​664)
String APIs
  • New functions for converting Rust char to and from Java char and int (#​427 / #​434)

  • JavaStr/MUTF8Chars, JNIStr, and JNIString have several new methods and traits, most notably a to_str method that converts to a regular Rust string. (#​510 / #​512)

  • JNIStr now implements Debug, PartialEq, Eq, PartialOrd, Ord and Hash (#​615)

  • JNIString now implements Debug, PartialEq, Eq, PartialOrd, Ord, Hash and Clone (#​615)

  • PartialEq<&JNIStr> for JNIString allows JNIStr and JNIString to be compared. (#​615)

  • From<&JNIStr> and From<MUTF8Chars> implementations for JNIString. (#​615)

  • JNIStr::from_cstr safely does a zero-copy cast of a CStr to a JNIStr after a const modified-utf8 encoding validation (#​615,#​617, #​715)

  • JNIStr::to_bytes gives access to a &[u8] slice over the bytes of a JNI string (like CStr::to_bytes) (#​615)

java.lang APIs
  • JClassLoader as a Reference wrapper for java.lang.ClassLoader references (#​612)
  • JCollection, JSet and JIterator reference wrappers for java.util.Collection, java.util.Set and java.util.Iterator interfaces. (#​621)
  • JList::remove_item for removing a given value, by-reference, from the list (instead of by index). (#​713)
  • JList::clear allows a list to be cleared. (#​713)
  • JList::is_empty checks if a list is empty. (#​713)
  • JList::as_collection casts a list into a JCollection (#​713)
  • JObjectArray::new lets you construct a JObjectArray<E> with strong element type parameterization, instead of Env::new_object_array (#​657 + #​688)
  • JObjectArray::get/set_element let you get and set array elements as methods on the array. (#​654)
  • JPrimitiveArray::new lets you construct a JPrimitiveArray<E>, consistent with JObjectArray::new (#​688)
  • JStackTraceElement gives access to stack frame info within a stack trace, like filename, line number etc (#​657)
  • JString now has ::new(), ::from_str and ::from_jni_str constructor methods (#​960)
  • JThread as a Reference wrapper for java.lang.Thread references (#​612)
  • JThrowable::get_message is a binding for getMessage() and gives easy access to an exception message
  • JThrowable::get_stack_trace is a binding for getStackTrace(), returning a JObjectArray<JStackTraceElement>
Macros
  • The #[jni_mangle()] attribute proc macro can export an extern "system" native method with a mangled name like "Java_com_example_myMethod" so it can be automatically resolved within a shared library by the JVM (#​693)
  • The jni_str! and jni_cstr! macros can encode a MUTF-8 &'static JNIStr or &' static CStr at compile time with full unicode support. (#​696)
  • The jni_sig!, jni_sig_str!, jni_sig_cstr! and jni_sig_jstr! macros can parse and compile signatures like (arg0: jint, arg1: JString) -> JString into MethodSignature and FieldSignature descriptors or JNI string literals like "(ILjava/lang/String;)Ljava/lang/String;" (#​697)
  • The native_method! macro binds a single native method to a Rust function with type safety and optionally exports it too. (#​698)
  • The bind_java_type! macro can generate full Rust bindings for Java types (classes and interfaces) with fields, constructors, methods and native methods (#​712)
Changed
JavaVM / Thread Attachment APIs
  • JNI version requirements are more explicit in the API and the crate now requires at least JNI >= 1.4. It needs >= 1.2 so it can check for exceptions and needs >= 1.4 to avoid runtime checks for direct byte buffers (#​478)
  • At a low-level (unsafe), all thread attachments (not just scoped attachments) are now represented by an owned or unowned AttachGuard
  • AttachGuard usage is now considered unsafe since the type must be pinned to the stack (but that can't be guaranteed by the Rust type system alone).
  • To allow safe thread attachments (that ensure their AttachGuard is pinned to the stack), attachment APIs take a FnOnce whose &mut Env arg borrows from a hidden AttachGuard
    • JavaVM::attach_current_thread requests a permanent thread attachment (reducing cost of future attach_current_thread() calls)
    • JavaVM::attach_current_thread_for_scope requests a thread attachment that's detached after the given closure returns.
  • JavaVM::get_java_vm_pointer has been renamed JavaVM::get_raw for consistency.
  • JavaVM::new and JavaVM::with_libjvm now prevent libjvm from being unloaded. This isn't necessary for HotSpot, but other JVMs could crash if we don't do this. (#​554)
Reference and Primitive Types
  • Make from_raw(), into_raw() and null() methods const fn. (#​453)

  • Make from_raw() require an Env reference so the returned wrapper is guaranteed to have a local reference frame lifetime (#​670)

  • GlobalRef and WeakRef have been renamed to Global and Weak and are now generic, parameterized, transparent wrappers over 'static reference types like Global<JClass<'static>> (no longer an Arc holding a reference and VM pointer) (#​596)

    • Global and Weak no longer implement Clone, since JNI is required to create new reference (you'll need to explicitly use env.new_global_ref)
    • Global and Weak both implement Default, which will represent ::null() references (equivalent to JObject::null())
  • Global::into_raw replaces Global::try_into_raw and is infallible (#​596)

  • AutoLocal has been renamed to Auto with a deprecated type alias for AutoLocal to sign post the rename.

  • AutoElements was simplified to only be parameterized by one lifetime for the array reference, and accepts any AsRef<JPrimitiveArray<T>> as a reference. (#​508)

  • JObjectArray supports generic element types like JObjectArray<JString>

  • JavaType was simplified to not capture object names or array details (like ReturnType) since these details don't affect JValue type checks and had a hidden cost that was redundant.

  • JValueGen has been removed. JValue and JValueOwned are now separate, unrelated, non-generic types.
    (#​429) (Note: previously JValue and JValueOwned were type aliases for
    JValueGen, which was an internal type, but this design led to confusing error messages that made them harder to use)

JNI Environment APIs
  • JNIEnv is no longer a #[transparent] FFI-safe pointer wrapper and has been split into EnvUnowned (for FFI/native method args) and Env (non-FFI) (#​634)

  • A JNIEnv type alias shows a verbose deprecation warning that explains how to migrate from JNIEnv to EnvUnowned and Env (#​634)

  • Env::get_version has been renamed to Env::version (#​478)

  • Env is no longer ever exposed in the API by-value can only be accessed by borrowing from a thread attachment AttachGuard.

  • Env implements runtime borrow checking to ensure new local references may only be associated with the top JNI stack frame

  • JavaVM::get_env is replaced by JavaVM::get_env_attachment which returns an AttachGuard if the current thread is attached. (#​570)

  • The following functions are now infallible (#​478):

    • Env::version
    • Env::get_java_vm
    • Env::exception_check
    • Env::exception_clear
    • Env::exception_describe
    • Env::exception_occurred (#​517)
    • Env::is_same_object
    • Env::delete_local_ref
    • WeakRef::is_same_object
    • WeakRef::is_weak_ref_to_same_object
    • WeakRef::is_garbage_collected
  • Env::fatal_error is now guaranteed not to panic or allocate, but requires the error message to be encoded ahead of time. (#​480)

  • Env::get_native_interface has been removed since it's redundant and Env::get_raw is more consistent with other APIs.

  • Env::register_native_methods is now marked unsafe since it requires all the given function pointers to be valid and match corresponding Java method signatures (568)

  • get_object_class borrows the Env mutably because it creates a new local reference. (#​456)

  • get/set_*_field_unchecked have been marked as unsafe since they can lead to undefined behaviour if the given types don't match the field type (#​457 + #​629)

  • set_static_field takes a field name and signature as strings so the ID is looked up internally to ensure it's valid. (#​629)

  • Env::get/set/take_rust_field no longer require a mutable Env reference since they don't return any new local references to the caller (#​455)

  • Env::get_rust_field returns a MutexGuard<'local> instead of taking the &'env self lifetime (so you don't lose any &mut Env reference you have) (#​675)

  • Env::is_assignable_from and is_instance_of no longer requires a mutable Env reference, since they don't return any new local references to the caller

  • Env::new_weak_ref returns a Result<Weak> and Error::ObjectFreed if the reference is null or has already been freed (instead of Result<Option<Weak>>) (#​596)

  • Env::new_global_ref and ::new_local_ref may return Error::ObjectFreed in case a weak reference was given and the object has been freed. (#​596)

  • Env::with_local_frame can be used with a shared &Env reference since it doesn't return a new local reference. (#​673)

  • Env::with_local_frame_returning_local can now return any kind of local Reference, not just JObject

  • Env::new_object_unchecked now takes a Desc<JMethodID> for consistency/flexibility instead of directly taking a JMethodID

String APIs
  • JavaStr has been renamed MUTF8Chars (with a deprecated JavaStr alias) and is intended to be got via JString::mutf8_chars()
  • JavaStr/MUTF8Chars::from_env has been removed because it was unsound (it could cause undefined behavior and was not marked unsafe). Use JString::mutf8_chars instead. (#​510 / #​512)
  • JavaStr/MUTF8Chars::get_raw has been renamed to as_ptr. (#​510 / #​512)
  • JavaStr/MUTF8Chars, JNIStr, and JNIString no longer coerce to CStr, because using CStr::to_str will often have incorrect results. You can still get a CStr, but must use the new as_cstr method to do so. (#​510 / #​512)
  • All APIs that were accepting modified-utf8 string args via Into<JNIString>, now take AsRef<JNIStr> to avoid string copies every call. Considering that these strings are often literals for signatures or class names, most code can use jni_str!() to encode string literals at compile time, like env.find_class(jni_str!("java/lang/Foo")). (#​617, #​696)
  • JavaStr/MUTF8Chars and JString both implement Display and therefore ToString, making it even easier to get a Rust String.
  • Env::get_string performance was optimized by caching an expensive class lookup, and using a faster instanceof check. (#​531)
  • Env::get_string performance was later further optimized to avoid the need for runtime type checking (#​612)
  • Env::get_string has been deprecated in favor of JString::mutf8_chars and JString::to_string() or JString::try_to_string(env)
Class Loading APIs
  • The documentation for Env::find_class now recommends considering LoaderContext::load_class instead.
  • Desc<JClass>::lookup() is now based on LoaderContext::load_class (instead of Env::find_class), which checks for a thread context class loader by default.
  • Env::define_class takes a name: Option<> instead of having a separate define_unnamed_class API.
  • Env::define_class_bytearray was renamed to Env::define_class_jbyte and is identical to define_class except for taking a &[jbyte] slice instead of &[u8], which is a convenience if you have a JByteArray or AutoElements<JByteArray>.
  • Env::define_class[_jbyte] now takes a loader: AsRef<JClassLoader> instead of loader: &JObject.
java.lang APIs
  • JList is a simpler, transparent reference wrapper implementing Reference, like JObject, JClass, JString etc
  • JList::add returns the boolean returned by the Java API
  • JList::get and JList::remove no longer returns an Option since there's nothing special about getting a null from the Java List API.
  • JList::pop is deprecated since this doesn't map to standard Java List method.
  • JList::iter returns a JIterator instead of a JListIter
  • Env::get_list has been deprecated, in favor of JList::cast_local, or other generic Env cast_local/cast_global APIs.
  • Env::get_array_elements is deprecated in favor of JPrimitiveArray::get_elements
  • Env::get_array_elements_critical is deprecated in favor of JPrimitiveArray::get_elements_critical
  • Env::get_*_array_region and Env::set_*_array_region are deprecated in favor of JPrimitiveArray::get/set_region
  • Env::get_array_length is deprecated in favor of JPrimitiveArray::len and JObjectArray::len
  • Env::get/set_object_array_element are deprecated in favor of JObjectArray::get/set_element
  • Env::new_*_array methods for primitive array types (like JByteArray) take a &mut Env and a usize len, and the docs recommend using J<Type>Array::new() instead.
Miscellaneous
  • AutoElements[Critical]::discard() now takes ownership of the elements and drops them to release the pointer after setting the mode to NoCopyBack (#​645)
  • Mark MonitorGuard with #[must_use] to warn when the guard is dropped accidentally (#​676)
  • NativeMethod (used with Env::register_native_methods) is a now a transparent jni::sys::JNINativeWrapper wrapper with an unsafe ::from_raw_parts constructor.
  • All APIs that require a JNI signature (like Env::get_method_id, Env::call_method etc) now require a pre-parsed MethodSignature or FieldSignature type instead of a raw string. This enables compile-time signature parsing via the jni_sig! macro, and avoids runtime signature parsing costs. (#​714)
Dependencies
  • jni-sys dependency bumped to 0.4 (#​478)
Fixed
  • Env::get_string no longer leaks local references. (#​528, #​557)
  • Deadlocks on Windows when automatically detaching JNI when threads exit. Attachments are now tracked with fiber local storage so detachment happens without holding OS loader lock. (#​701)
Removed
  • JavaVM::attach_current_thread_as_daemon (and general support for 'daemon' threads) has been removed, since their semantics are inherently poorly defined and unsafe (the distinction relates to the poorly defined limbo state after calling JavaDestroyVM, where it becomes undefined to touch the JVM) (#​593)
  • The 'Executor' API has been removed (AttachGuard::with_env can be used instead) (#​570)
  • Env::from_raw, Env::from_raw_unchecked and Env::unsafe_clone have been removed, since the API no longer exposes the Env type by-value, it must always be borrowed from an AttachGuard. (#​570)
  • Error::NullDeref and Error::JavaVMMethodNotFound have been removed since they were unused.
  • JavaType::Method was removed since a method signature isn't a type, and all usage was being matched as unreachable or an error.
  • Env::define_unnamed_class was removed in favor of having the define_class[_jbyte] APIs take a name: Option instead.
mgeier/rtrb (rtrb)

v0.4.0: rtrb 0.4.0

Compare Source

https://crates.io/crates/rtrb/0.4.0

Breaking Changes

  • restore synchronization behavior of is_abandoned() (by replacing Arc)
    • dropping a Producer/Consumer on one thread now synchronizes again with calling is_abandoned() on another thread, independent of Rust version

Bug-Fixes

  • make ReadChunk::commit()/commit_all() panic-safe (avoid UB caused by double-free)

v0.3.5: rtrb 0.3.5

Compare Source

https://crates.io/crates/rtrb/0.3.5

This is a bug-fix release to fix this:

  • make ReadChunk::commit()/commit_all() panic-safe (avoid UB caused by double-free)

If you want the newest (at the time or writing) release, use 0.4.0.

wasm-bindgen/wasm-bindgen (wasm-bindgen)

v0.2.127

Compare Source

Added
  • Navigation API
    to web-sys #​5247

  • Added riscv64gc-unknown-linux-gnu release artifacts.
    #​5265

  • Added JsNullable<T>, modeling WebIDL nullable types (T | null). Both
    null and undefined are treated as absent, per WebIDL's ECMAScript
    conversion rules; the canonical empty value produced from Rust is null.
    web-sys now uses JsNullable<T> instead of JsOption<T> for nullable
    types nested inside generics (e.g. Promise<GpuError?> from
    GPUDevice.popErrorScope()), fixing spec-defined null resolutions being
    treated as present values under JsOption<T>'s strict undefined-only
    semantics. JsNullable<T> participates in the same upcast lattice as
    JsOption<T> (including contravariant closure argument casts), and
    additionally upcasts from Null and from JsOption<T> itself. Imported
    extern types now also upcast into JsOption<JsValue> and
    JsNullable<JsValue>, so catch-all nullable closures can be used where a
    typed callback is expected.
    #​5234

  • Added experimental JSPI (JS Promise Inte

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 9am on the first day of the month"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from cloudwebrtc as a code owner September 1, 2026 02:27
@renovate
renovate Bot requested review from cloudwebrtc and ladvoc September 1, 2026 02:27
@renovate

renovate Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path libwebrtc/Cargo.toml --package js-sys@0.3.103 --precise 0.3.104
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/livekit/rust-sdks/livekit-uniffi/Cargo.toml
workspace: /tmp/renovate/repos/github/livekit/rust-sdks/Cargo.toml
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/livekit/rust-sdks/livekit-ffi-node-bindings/Cargo.toml
workspace: /tmp/renovate/repos/github/livekit/rust-sdks/Cargo.toml
    Updating crates.io index
error: failed to select a version for the requirement `js-sys = "=0.3.103"`
candidate versions found which didn't match: 0.3.104
location searched: crates.io index
required by package `wasm-bindgen-futures v0.4.76`
    ... which satisfies dependency `wasm-bindgen-futures = "^0.4"` (locked to 0.4.76) of package `libwebrtc v0.3.46 (/tmp/renovate/repos/github/livekit/rust-sdks/libwebrtc)`
    ... which satisfies path dependency `libwebrtc` (locked to 0.3.46) of package `livekit v0.8.4 (/tmp/renovate/repos/github/livekit/rust-sdks/livekit)`

File name: libwebrtc/Cargo.toml
Artifact update for glib resolved to version 0.22.9, which is a pending version that has not yet passed the Minimum Release Age threshold.
Renovate was attempting to update to 0.22.8
This is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.
Until Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with `rangeStrategy=pin` for apps, or `rangeStrategy=widen` for libraries)
See also: https://docs.renovatebot.com/dependency-pinning/

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

No changeset found

This PR modifies versioned packages but doesn't include a changeset. The following packages require a version bump:

  • libwebrtc
  • livekit
  • livekit-ffi

A package must be bumped when its own files change, and whenever a package it depends on is bumped (so downstream consumers get a matching release).

Click here to create a changeset for the missing packages

The link pre-populates a changeset file with patch bumps for the missing packages. You can also add them to your existing changeset. Edit the bump types as needed before committing.

If this change doesn't require a version bump, add the internal label to this PR.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Devin Review: 2 flags

Not posted on this PR by your GitHub settings — view them in Devin Review. (Configure)

Devin Review

Generated by renovateBot
@renovate
renovate Bot force-pushed the renovate/cargo-dependencies-(libwebrtc) branch from f1929f4 to ae5d272 Compare September 2, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant