uniffi-rs icon indicating copy to clipboard operation
uniffi-rs copied to clipboard

Make log crate dependency and logging an optional feature

Open timboudreau opened this issue 1 year ago • 2 comments

Addresses #2224 - even disabled logging can have overhead depending with some backends, and in very high frequency calls, generates unacceptable overhead and log-spam.

Those tests that can run without kotlinc installed pass.

I cannot verify that it is problem-free until I backport it to 0.26.1 as using 0.28.1 with my code fails at build time, with or without the patch, as follows:

thread 'main' panicked at /Users/tim/.cargo/git/checkouts/uniffi-rs-cc388e82c08ac837/ddc23a3/uniffi/src/lib.rs:30:21:
called `Result::unwrap()` on an `Err` value: Failed to extract data from archive member `curve.curve.e27b66861dd0975a-cgu.0.rcgu.o`

Caused by:
    Constructor return type must be Arc<Self>

Note this patch entirely removes the log dependency - both call logging and panic logging. If that seems like overkill, it could probably be split into two flags, one to remove logging entirely, and one just to remove FFI-call logging.

timboudreau avatar Aug 30 '24 00:08 timboudreau