fix(deps): update all dependencies #19
Reference in New Issue
Block a user
No description provided.
Delete Branch "renovate/all"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
1.0.75->1.0.1001.0.75->1.0.1000.5.1->0.5.35.0.9->7.0.05.0.9->7.0.00.1.73->0.1.890.5.0->0.6.01.0.0->1.0.40.4.26->0.4.424.3.23->4.5.530.2->1.00.13.0->0.14.01.4.0->1.5.00.5.1->0.8.140.5.1->0.8.70.5.1->0.8.70.5.1->0.8.50.5.1->0.8.100.4.20->0.4.294.4.0->5.0.03.0.0->4.0.01.4.0->1.4.10.6.4->0.9.01.0.0->1.1.01.0.107->1.0.1451.0.105->1.0.1454->50.6.2->0.8.01->21.33.0->1.48.01.32.0->1.48.00.4.13->0.5.00.3.4->0.6.00.4.0->0.6.01.4.1->1.19.00.2.87->0.2.1063.3.1->5.0.0Release Notes
dtolnay/anyhow (anyhow)
v1.0.100Compare Source
bail!,ensure!,anyhow!(#426)v1.0.99Compare Source
v1.0.98Compare Source
self.into_boxed_dyn_error()andself.reallocate_into_boxed_dyn_error_without_backtrace()methods for anyhow::Error (#415)v1.0.97Compare Source
v1.0.96Compare Source
v1.0.95Compare Source
Error::from_boxed(#401, #402)v1.0.94Compare Source
v1.0.93Compare Source
thiserrorv2v1.0.92Compare Source
&raw constand&raw mutsyntax insideensure!(#390)v1.0.91Compare Source
v1.0.90Compare Source
v1.0.89Compare Source
UnwindSafeandRefUnwindSafeimpl consistently available between versions of Rust newer and older than 1.72 (#386)v1.0.88Compare Source
v1.0.87Compare Source
Error::newandError::chain, in no-std mode on Rust 1.81+ (#383)v1.0.86Compare Source
ensure!with non-literal after minus sign (#373)v1.0.85Compare Source
ensure!macro's rules to unblock some rustc pretty-printer improvements (#368, #371)v1.0.84Compare Source
ensure!through aNotimpl for a type that is notbool(#367)v1.0.83Compare Source
v1.0.82Compare Source
v1.0.81Compare Source
v1.0.80Compare Source
v1.0.79Compare Source
v1.0.78Compare Source
v1.0.77Compare Source
anyhow::Error::backtraceavailable on stable Rust compilers 1.65+ (#293, thanks @LukasKalbertodt)v1.0.76Compare Source
unsafe_op_in_unsafe_fnlint (#329)RustCrypto/password-hashes (argon2)
v0.5.3Compare Source
v0.5.2Compare Source
async-graphql/async-graphql (async-graphql)
v7.0.171.86.0v7.0.16__typenamealways returnednullwhen introspection was disabled.1.83.0v7.0.15custom-error-conversionfeature #1631v7.0.14v7.0.13Compare Source
v7.0.121.83.0SimpleObject.boxed-traitfeature #1641v7.0.11v7.0.10SchemeBuilder.limit_directivesmethod to set the maximum number of directives on a single field.From<T>for [Error] set source #1561v7.0.9on_pingcallback toWebSocketv7.0.8rejectioninasync_graphql_axum#1571timeto3.36, as it fixes a compilation error in rust1.80#1572Debugfordynamic::FieldValue& Improve error messages for its methods #1582#[doc = ...]attributes when generating descriptions #1581Websocket::keepalive_timeoutmethod to sets a timeout for receiving an acknowledgement of the keep-alive ping.v7.0.7Compare Source
ARGUMENT_DEFINITIONis not being output at the appropriate location in SDL #1559v7.0.6Compare Source
InterfaceandOneofObjecton the same struct #1534v7.0.5Compare Source
displayattribute for Enum macro #1518v7.0.3Compare Source
type_nameofEmptySubscriptionfix #1435 #1475Request::set_parsed_querymethod #1483NextExecute::run_with_datamethod to attach context data before executionv7.0.2Compare Source
#[derive(OneofObject)]rejecting enums where the type comes from a macro substitution #1473impl Futureinstead ofasync-traitin most traits. #1468base64to0.21#1466v7.0.11.86.0v7.0.0http1v6.0.11Compare Source
v0.21.x#1422v6.0.10Compare Source
0.20.0#14060.5.0-rc.2to0.5.0-rc.4v6.0.9Compare Source
@composeDirectivein Federation's_servicefield and document#[TypeDirective]#1400v6.0.7Compare Source
v6.0.6Compare Source
v6.0.5Compare Source
ValueAccessor::as_valueandListAccessor::as_values_slicemethods #13531.70.0v6.0.4Compare Source
multipart/mixedrequest. #1348GraphQLhandler.GraphQLservice.v6.0.3Compare Source
XXXAccessorreturn reference lifetimes that are smaller than expected.OutputTypeimplementation forstd::sync::Weak#1334v6.0.1Compare Source
v0.21.x#1422v6.0.0Compare Source
synfrom1.0to2.0darlingfrom0.14to0.20indexmapfrom1.6.2to2guard,process_with,complexitysupport expression or string as value #1295Dataloader::get_cached_valuesmethod to the dataloader cache so that callers can access the contents of the cache without knowing the keys. #1326Breaking Changes
Since
syn 2.0no longer supports keywords as meta path, rename the parameter used to specify interface field types fromtypetoty.https://github.com/dtolnay/syn/issues/1458
https://github.com/TedDriggs/darling/issues/238
locationof the macroDirectiveto PascalCasedtolnay/async-trait (async-trait)
v0.1.89Compare Source
v0.1.88Compare Source
v0.1.87Compare Source
v0.1.86Compare Source
v0.1.85Compare Source
Self: 'async_traitbound in impl when not needed by signature (#284)v0.1.84Compare Source
impl Traitin return type (#282)v0.1.83Compare Source
v0.1.82Compare Source
v0.1.81Compare Source
syndependency (#272, thanks @klensy)v0.1.80Compare Source
!(#265, thanks @de-vri-es)v0.1.79Compare Source
v0.1.78Compare Source
v0.1.77Compare Source
v0.1.76Compare Source
v0.1.75Compare Source
v0.1.74Compare Source
maxcountryman/axum-sessions (axum-sessions)
v0.6.1Compare Source
v0.6.0: Migration totower-sessionsCompare Source
rust-lang/cfg-if (cfg-if)
v1.0.4Compare Source
cfg(true)andcfg(false)(#99)v1.0.3Compare Source
@__identityrule."v1.0.2Compare Source
@__identityrule.v1.0.1Compare Source
compiler-builtinsfromrustc-dep-of-stddependencieschronotope/chrono (chrono)
v0.4.42: 0.4.42Compare Source
What's Changed
wasm32-linuxsupport by @arjunr2 in https://github.com/chronotope/chrono/pull/1707tzdataparsing by @ldm0 in https://github.com/chronotope/chrono/pull/1679?Sizedbound to related methods ofDelayedFormat::write_toby @Huliiiiii in https://github.com/chronotope/chrono/pull/1721from_timestamp_secsmethod toDateTimeby @jasonaowen in https://github.com/chronotope/chrono/pull/1719v0.4.41Compare Source
What's Changed
subsec_microsandsubsec_millismethods toTimeDeltaby @ggoetz in https://github.com/chronotope/chrono/pull/1668NaiveDateTime::UNIX_EPOCHby @robertbastian in https://github.com/chronotope/chrono/pull/1670as_seconds_f32andas_seconds_f64forTimeDeltaby @ggoetz in https://github.com/chronotope/chrono/pull/1671num_days_in_monthmethod toDateliketrait by @aslilac in https://github.com/chronotope/chrono/pull/1673WeekdaySet, a collection ofWeekdaythat isCopyby @Kinrany in https://github.com/chronotope/chrono/pull/1676v0.4.40: 0.4.40Compare Source
What's Changed
write_toforDelayedFormatby @tugtugtug in https://github.com/chronotope/chrono/pull/1654v0.4.39: 0.4.39Compare Source
What's Changed
from_timestamp_nanos()by @sgoll in https://github.com/chronotope/chrono/pull/1591NaiveWeekmethods by @bragov4ik in https://github.com/chronotope/chrono/pull/1600PartialEq,Eq,Hash,CopyandCloneonNaiveWeekby @DSeeLP in https://github.com/chronotope/chrono/pull/1618#[inline]tonum_daysby @CommanderStorm in https://github.com/chronotope/chrono/pull/1627v0.4.38Compare Source
This release bring a ca. 20% improvement to the performance of the formatting code, and a convenient
days_sincemethod for theWeekdaytype.Chrono 0.4.38 also removes the long deprecated
rustc-serializefeature. Support forrustc-serializewill be soft-destabilized in the next Rust edition. Removing the feature will not break existing users of the feature; Cargo will just not update dependents that rely on it to newer versions of chrono.In chrono 0.4.36 we made an accidental breaking change by switching to
derive(Copy)forDateTimeinstead of a manual implementation. It is reverted in this release.Removals
rustc-serializefeature (#1548, thanks @workingjubilee)Additions
Weekday::days_since(#1249, based on #216 by @clarfonthey)TimeDelta::checked_mulandTimeDelta::checked_div(#1565, thanks @Zomtir)Fixes
CopyforDateTimeif offset isCopy(#1573)Internal
test_encodable_jsonandtest_decodable_jsonfunctions (#1550)cargo hack check(#1553)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.37Compare Source
Version 0.4.36 introduced an unexpected breaking change and was yanked. In it
LocalResultwas renamed toMappedLocalTimeto avoid the impression that it is aResulttype were some of the results are errors. For backwards compatibility a type alias with the old name was added.As it turns out there is one case where a type alias behaves differently from the regular enum: you can't import enum variants from a type alias with
use chrono::LocalResult::*. With 0.4.37 we make the new nameMappedLocalTimethe alias, but keep using it in function signatures and the documentation as much as possible.See also the release notes of chrono 0.4.36 from yesterday for the yanked release.
v0.4.36Compare Source
This release un-deprecates the methods on
TimeDeltathat were deprecated with the 0.4.35 release because of the churn they are causing for the ecosystem.New is the
DateTime::with_time()method. As an example of when it is useful:Additions
DateTime::with_time()(#1510)Deprecations
TimeDeltadeprecations (#1543)TimeStamp::timestamp_subsec_nanos, which was missed in the 0.4.35 release (#1486)Documentation
Internal
CopyandSendimpls (#1492, thanks @erickt)NaiveDateunit tests (#1500, thanks @Zomtir)LocalResulttoTzResolution, add alias (#1501)NaiveDate::from_yof(#1518)DateTime::date_naiveandNaiveDate::diff_months(#1530)unwrapin UnixLocaltype (#1533)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.35Compare Source
Most of our efforts have shifted to improving the API for a 0.5 release, for which cleanups and refactorings are landing on the 0.4.x branch.
The most significant changes in this release are two sets of deprecations.
We deprecated all timestamp-related methods on
NaiveDateTime. The reason is that a timestamp is defined to be in UTC. TheNaiveDateTimetype doesn't know the offset from UTC, so it was technically wrong to have these methods. The alternative is to use the similar methods on theDateTime<Utc>type, or from theTimeZonetrait.Converting from
NaiveDateTimetoDateTime<Utc>is simple with.and_utc(), and in the other direction with.naive_utc().The panicking constructors of
TimeDelta(the new name of theDurationtype) are deprecated. This was the last part of chrono that defaulted to panicking on error, dating from before rust 1.0.A nice change is that
NaiveDatenow includes a niche. So nowOption<NaiveDate>,Option<NaiveDateTime>andOption<DateTime<Tz>>are the same size as their base types.format::Numericandformat::Fixedare marked asnon_exhaustive. This will allow us to improve our formatting and parsing support, and we have reason to believe this breaking change will have little to no impact on users.Additions
DateTime::{from_timestamp_micros, from_timestamp_nanos}(#1234)Parsed(#1465)Deprecations
NaiveDateTime(#1473)TimeDelta(#1450)Changes/fixes
NonZeroI32insideNaiveDate(#1207)format::Numericandformat::Fixedasnon_exhaustive(#1430)Parsedfixes to error values (#1439)overflowing_naive_localinDateTime::checked_add*(#1333)Parsed::set_*(#1465)Documentation
Parsed(#1439)Internal
internalsmodule (#1428, #1429, #1431, #1432, #1433, #1438)x86_64-unknown-illumosinstead of Solaris (#1437)cargo hack checkon Linux (#1442)parse_internal(#1459)SerdeError(#1458)NaiveDate::from_isoywda bit (#1464)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.34Compare Source
Notable changes
Durationtype toTimeDelta. This removes the confusion between chrono's type and the laterDurationtype in the standard library. It will remain available under the old name as a type alias for compatibility.Localis rewritten. The new version avoids panics when the date is outside of the range supported by windows (the years 1601 to 30828), and gives more accurate results during DST transitions.Displayformat ofTimeDeltais modified to conform better to ISO 8601. Previously it converted all values greater than 24 hours to a value with days. This is not correct, as doing so changes the duration from an 'accurate' to a 'nominal' representation to use ISO 8601 terms.Fixes
TimeDelta::milliseconds(#1385, thanks @danwilliams)DurationExceedsTimestampinDurationRound(#1403, thanks @joroKr21)%X(https://github.com/chronotope/pure-rust-locales/pull/12, #1420)GetTimeZoneInformationForYear(#1017)Additions
TimeDelta::try_milliseconds(#1385, thanks @danwilliams)TimeDelta::new(#1337)StrftimeItems::{parse, parse_to_owned}and more documentation (#1184)format::Locale(via https://github.com/chronotope/pure-rust-locales/pull/8)Changes
DurationtoTimeDelta, add type alias (#1406)TimeDeltamethods const (#1337)NaiveDate,NaiveWeek,NaiveTimeandNaiveDateTimeconst where possible (#1337)DateTimeconst where possible (#1400)Displayformat ofTimeDeltaconform better to ISO 8601 (#1328)Documentation
timestamp_micros's Example doc (#1338 via #1386, thanks @emikitas)TimeDeltaconstructors (#1385, thanks @danwilliams)Internal
mainbranch, work on 0.5 happens in the0.5.xbranch (#1390, #1402).impl Arbitrary for DateTimeand set up CI test (#1336)codecov/codecov-actionfrom 3 to 4 (#1404)-0000offset (#1411)TOO_LONGerror out ofparse_internal(#1419)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.33Compare Source
This release fixes the broken docrs.rs build of chrono 0.4.32.
What's Changed
rkyvfeature implysize_32(#1383)Duration::hours()exception (#1384, thanks @danwilliams)v0.4.32Compare Source
In this release we shipped part of the effort to reduce the number of methods that could unexpectedly panic, notably for the
DateTimeandDurationtypes.Chrono internally stores the value of a
DateTimein UTC, and transparently converts it to the local value as required. For example adding a second to aDateTimeneeds to be done in UTC to get the correct result, but adding a day needs to be done in local time to be correct. What happens when the value is near the edge of the representable range, and the implicit conversions pushes it beyond the representable range? Many methods could panic on such inputs, including formatting the value forDebugoutput.In chrono 0.4.32 the range of
NaiveDate,NaiveDateTimeandDateTimeis made slightly smaller. This allows us to always do the implicit conversion, and in many cases return the expected result. Specifically the range is now from January 1, -262144 until December 31, 262143, one year less on both sides than before. We expect this may trip up tests if you hardcoded theMINandMAXdates.Durationhad a similar issue. The range of this type was pretty arbitrary picked to match the range of ani64in milliseconds. Negating ani64::MINpushes a value out of range, and in the same way negatingDuration::MINcould push it out of our defined range and cause a panic. This turns out to be somewhat common and hidden behind many layers of abstraction. We adjusted the type to have a minimum value of-Duration::MAXinstead and prevent the panic case.Other highlights:
Durationgained new fallible initialization methods.rkyv.NaiveDateTimeare now const.DateTimeconst in a future release.Complete list of changes:
Fixes
TimeZone::from_local_datetime(#1071)DateTimegetters and setters (#1317, #1329)Additions
NaiveDateTime::checked_(add|sub)_offset(#1313)DateTime::to_utc(#1325)DefaultforDuration(#1327)Duration::subsec_nanos(#1327)try_*builders toDuration(#1327)AddAssignandSubAssignforDuration(#1327)NaiveDateTimeconst where possible (#1286)clockfeature intoclockandnow(#1343, thanks @mmastrac)From<NaiveDate>forNaiveDateTime(#1355, thanks @dcechano)NaiveDateTime::from_timestamp_nanos(#1357, thanks @Ali-Mirghasemi)Months::num_months()andnum_years()(#1373, thanks @danwilliams)DateTime<Utc>::from_timestamp_millis(#1374, thanks @xmakro)Changes
Duration::MIN.abs()(adjustDuration::MINby 1 millisecond) (#1334)Deprecations
formatfunctions (#1306)Documentation
doc_auto_cfg(#1305, #1326)Add/Subimpls and useexpect(#1316)TimeZone::datetime_from_str(#1342, thanks @tmccombs)Datelikeimpl forDateTime(#1376, thanks @ElectrifyPro)Rkyv support
Archived*types inrkyvmodule (#1304)Archived*types (#1271, thanks @Awpteamoose)Changes to unstable features
unstable-localesimply theallocfeature (#1307)format::{format_localized, format_item_localized}(#1311)write_rfc2822_inner, don't localize (#1322)Internal
DateTime::with_*(#1309)*_DAYS_FROM_YEAR_0calculation (#1312)NaiveTime::overflowing_(add|sub)_offset(#1310)DateTime::overflowing_(add|sub)_offset(#1069)set env LC_ALL(#1315, thanks @jtmoon79)deny.toml(#1320)with: node-version(#1352, thanks @jtmoon79)tomljob (#1371, thanks @gibbz00)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.31Compare Source
Another maintenance release.
It was not a planned effort to improve our support for UNIX timestamps, yet most PRs seem related to this.
Deprecations
timestamp_nanosin favor of the non-panickingtimestamp_nanos_opt(#1275)Additions
DateTime::<Utc>::from_timestamp(#1279, thanks @demurgos)TimeZone::timestamp_micros(#1285, thanks @emikitas)DateTime<Tz>::timestamp_nanos_optandNaiveDateTime::timestamp_nanos_opt(#1275)UNIX_EPOCHconstants (#1291)Fixes
This makes many methods a little more strict:
NaiveTime::from_hms_milliNaiveTime::from_hms_milli_optNaiveTime::from_hms_microNaiveTime::from_hms_micro_optNaiveTime::from_hms_nanoNaiveTime::from_hms_nano_optNaiveTime::from_num_seconds_from_midnightNaiveTime::from_num_seconds_from_midnight_optNaiveDate::and_hms_milliNaiveDate::and_hms_milli_optNaiveDate::and_hms_microNaiveDate::and_hms_micro_optNaiveDate::and_hms_nanoNaiveDate::and_hms_nano_optNaiveDateTime::from_timestampNaiveDateTime::from_timestamp_optTimeZone::timestampTimeZone::timestamp_optNaiveDateTime::timestamp_nanos_opt(#1294, thanks @crepererum)Documentation
Internal
__doctestfeature anddoc_commentdependency (#1276)actions/checkoutfrom 3 to 4 (#1280)NaiveDate::add_daysfor small values (#1214)pure-rust-localesto 0.7.0 (#1288, thanks @jeremija wo did good improvements onpure-rust-locales)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.30Compare Source
In this release, we have decided to swap out the
chrono::Durationtype (which has been a re-export of time 0.1Durationtype) with our own definition, which exposes a strict superset of thetime::DurationAPI. This helps avoid warnings about the CVE-2020-26235 and RUSTSEC-2020-0071 advisories for downstream users and allows us to improve theDurationAPI going forward.While this is technically a SemVer-breaking change, we expect the risk of downstream users experiencing actual incompatibility to be exceedingly limited (see our analysis of public code using a crater-like experiment), and not enough justification for the large ecosystem churn of a 0.5 release. If you have any feedback on these changes, please let us know in #1268.
Additions
NaiveDate::leap_year(#1261)Documentation
Timelike::num_seconds_from_midnightis a simple mapping (#1255)Relation between chrono and time 0.1
Rust first had a
timemodule added tostdin its 0.7 release. It later moved tolibextra, and then to alibtimelibrary shipped alongside the standard library. In 2014 work on chrono started in order to provide a full-featured date and time library in Rust. Some improvements from chrono made it into the standard library; notably,chrono::Durationwas included asstd::time::Duration(rust#15934) in 2014.In preparation of Rust 1.0 at the end of 2014
libtimewas moved out of the Rust distro and into thetimecrate to eventually be redesigned (rust#18832, rust#18858), like thenumandrandcrates. Of course chrono kept its dependency on thistimecrate.timestarted re-exportingstd::time::Durationduring this period. Later, the standard library was changed to have a more limited unsignedDurationtype (rust#24920, RFC 1040), while thetimecrate kept the full functionality withtime::Duration.time::Durationhad been a part of chrono's public API.By 2016
time0.1 lived under therust-lang-deprecatedorganisation and was not actively maintained (time#136). chrono absorbed the platform functionality andDurationtype of thetimecrate in chrono#478 (the work started in chrono#286). In order to preserve compatibility with downstream crates depending ontimeandchronosharing aDurationtype, chrono kept depending on time 0.1. chrono offered the option to opt out of thetimedependency by disabling theoldtimefeature (swapping it out for an effectively similar chrono type). In 2019, @jhpratt took over maintenance on thetimecrate and released what amounts to a new crate astime0.2.Security advisories
In November of 2020 CVE-2020-26235 and RUSTSEC-2020-0071 were opened against the
timecrate. @quininer had found that calls tolocaltime_rmay be unsound (chrono#499). Eventually, almost a year later, this was also made into a security advisory against chrono as RUSTSEC-2020-0159, which had platform code similar totime.On Unix-like systems a process is given a timezone id or description via the
TZenvironment variable. We need this timezone data to calculate the current local time from a value that is in UTC, such as the time from the system clock.time0.1 and chrono used the POSIX functionlocaltime_rto do the conversion to local time, which reads theTZvariable.Rust assumes the environment to be writable and uses locks to access it from multiple threads. Some other programming languages and libraries use similar locking strategies, but these are typically not shared across languages. More importantly, POSIX declares modifying the environment in a multi-threaded process as unsafe, and
getenvin libc can't be changed to take a lock because it returns a pointer to the data (see rust#27970 for more discussion).Since version 4.20 chrono no longer uses
localtime_r, instead using Rust code to query the timezone (from theTZvariable or viaiana-time-zoneas a fallback) and work with data from the system timezone database directly. The code for this was forked from the tz-rs crate by @x-hgg-x. As such, chrono now respects the Rust lock when reading theTZenvironment variable. In general, code should avoid modifying the environment.Removing time 0.1
Because time 0.1 has been unmaintained for years, however, the security advisory mentioned above has not been addressed. While chrono maintainers were careful not to break backwards compatibility with the
time::Durationtype, there has been a long stream of issues from users inquiring about the time 0.1 dependency with the vulnerability. We investigated the potential breakage of removing the time 0.1 dependency in chrono#1095 using a crater-like experiment and determined that the potential for breaking (public) dependencies is very low. We reached out to those few crates that did still depend on compatibility with time 0.1.As such, for chrono 0.4.30 we have decided to swap out the time 0.1
Durationimplementation for a local one that will offer a strict superset of the existing API going forward. This will prevent most downstream users from being affected by the security vulnerability in time 0.1 while minimizing the ecosystem impact of semver-incompatible version churn.Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.29Compare Source
This release fixes a panic introduced in chrono 0.4.27 in
FromStr<DateTime<Utc>>(#1253).Chrono now has a Discord channel.
Fixes
parse_rfc3339_relaxed(#1254)Deprecations
TimeZone::datetime_from_str(#1251)Documentation
FromStrforWeekdayandMonth(#1226, thanks @wfraser)Internal improvements
i686andwasm32-wasi(#1237)This allows us to upgrade the criterion dependency to 5.1 without changing our MSRV.
Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.28Compare Source
This release fixes a test failure on 32-bit targets introduced with 0.4.27, see https://github.com/chronotope/chrono/issues/1234.
v0.4.27Compare Source
This release bumps the MSRV from 1.56 to 1.57. This allows us to take advantage of the panicking in const feature. In this release most methods on
NaiveDateandNaiveTimeare made const,NaiveDateTimeand others will follow in a later release.The parser for the
%+formatting specifier and theRFC3339formatting item is switched from a strict to a relaxed parser (see https://github.com/chronotope/chrono/pull/1145). This matches the existing documentation, and the parser used byDateTime::from_str. If you need to validate the input, consider usingDateTime::from_rfc3339.Deprecations
DateTime::{from_local, from_utc}(https://github.com/chronotope/chrono/pull/1175)Additions
DateTime::signed_duration_sincetake argument withBorrow(https://github.com/chronotope/chrono/pull/1119)PartialOrdforMonth(https://github.com/chronotope/chrono/pull/999, thanks @Munksgaard)OrdandEqfor types which already derivePartialOrdandPartialEq(https://github.com/chronotope/chrono/pull/1128, thanks @totikom)FusedIteratorforNaiveDateDaysIteratorandNaiveDateWeeksIterator(https://github.com/chronotope/chrono/pull/1134)NaiveDateDaysIteratorandNaiveDateWeeksIteratorpublic (https://github.com/chronotope/chrono/pull/1134)FromStrforFixedOffset(https://github.com/chronotope/chrono/pull/1157, thanks @mcronce)Tz::Offset: Displayrequirement fromDateTime::to_rfc*(https://github.com/chronotope/chrono/pull/1160)StrftimeItemswithunstable-localeswork without allocating (https://github.com/chronotope/chrono/pull/1152)NaiveDate::from_ymd_optconst (https://github.com/chronotope/chrono/pull/1172, thanks @kamadorueda)Errortrait forParseWeekdayErrorandParseMonthError(https://github.com/chronotope/chrono/pull/539, thanks @mike-kfed)NaiveTimeconst, update MSRV to 1.57 (https://github.com/chronotope/chrono/pull/1080)NaiveDateconst (https://github.com/chronotope/chrono/pull/1205)core::time::DurationonDateTimetypes (https://github.com/chronotope/chrono/pull/1229)Fixes
timestamp_nanospanics on overflow in release builds (https://github.com/chronotope/chrono/pull/1123)offset_from_local_datetimeforwasm_bindgen(https://github.com/chronotope/chrono/pull/1131)%sto be a timestamp in UTC (https://github.com/chronotope/chrono/pull/1136)%#z(https://github.com/chronotope/chrono/pull/1140, thanks @domodwyer)%cand%r(https://github.com/chronotope/chrono/pull/1165)unstable-localesfeature (https://github.com/chronotope/chrono/pull/1168)Offset'sDebugimpl when serializingDateTime(https://github.com/chronotope/chrono/pull/1035)NaiveTime::from_str(https://github.com/chronotope/chrono/pull/1181)android-tzdataif theclockfeature is not enabled (https://github.com/chronotope/chrono/pull/1220, thanks @AlexTMjugador)Documentation
NaiveTimedoc typo (https://github.com/chronotope/chrono/pull/1146, thanks @zachs18)Datelike::with_*(https://github.com/chronotope/chrono/pull/1199)Utc::nowandLocal::now(https://github.com/chronotope/chrono/pull/1192)Weekday::num_days_from_monday(https://github.com/chronotope/chrono/pull/1193)Internal improvements
DateTime::to_rfc_*optimizations (https://github.com/chronotope/chrono/pull/1200)format/formatting.rs(https://github.com/chronotope/chrono/pull/1156)saturating_abs(https://github.com/chronotope/chrono/pull/1124)Makefile(https://github.com/chronotope/chrono/pull/1133)wasm-bindgenfeature (https://github.com/chronotope/chrono/pull/1131)try_verify_against_date_command(https://github.com/chronotope/chrono/pull/1161)no_std(https://github.com/chronotope/chrono/pull/1166)test_parse(https://github.com/chronotope/chrono/pull/1170)#test_date_extreme_offset(https://github.com/chronotope/chrono/pull/1195)features-check(https://github.com/chronotope/chrono/pull/1216)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
clap-rs/clap (clap)
v4.5.53Compare Source
Features
default_values_if,default_values_ifsv4.5.52Compare Source
Fixes
args_conflicts_with_subcommandsconflicts with anArgGroupv4.5.51Compare Source
Fixes
ArgAction::Countv4.5.50Compare Source
Features
CowwhereStringand&strare acceptedv4.5.49Compare Source
Fixes
v4.5.48Compare Source
Documentation
typed_derivecookbook entryv4.5.47Compare Source
Features
impl FromArgMatches for ()impl Args for ()impl Subcommand for ()impl FromArgMatches for Infallibleimpl Subcommand for InfallibleFixes
clapv4.5.46Compare Source
Features
StyledStr::push_strv4.5.45Compare Source
Fixes
ValueEnumvariants now use the full doc comment, not summary, forPossibleValue::helpv4.5.44Compare Source
Features
Command::mut_subcommandsv4.5.43Compare Source
Fixes
v4.5.42Compare Source
Fixes
--helpv4.5.41Compare Source
Features
Styles::contextandStyles::context_valueto customize the styling of[default: value]like notes in the--helpv4.5.40Compare Source
Features
arg!()macro (e.g.arg!("check-config": ...))v4.5.39Compare Source
Fixes
v4.5.38Compare Source
Fixes
--or-v4.5.37Compare Source
Features
ArgMatches::try_clear_id()v4.5.36Compare Source
Fixes
v4.5.35Compare Source
Fixes
help_headingv4.5.34Compare Source
Fixes
flatten_help(true)and subcommands without argumentsv4.5.33Compare Source
Fixes
v4.5.32Compare Source
Features
Error::removeDocumentation
humantimetojiffInternal
pulldown-cmarkv4.5.31Compare Source
Features
ValueParserFactoryforSaturating<T>v4.5.30Compare Source
Fixes
num_args(0..=1)to be used withSetTruetakes_valuesassertionsv4.5.29Compare Source
Fixes
ArgMatches::args_presentso not-present flags are considered not-present (matching the documentation)v4.5.28Compare Source
Features
unstable-markdownv4.5.27Compare Source
Documentation
v4.5.26Compare Source
Fixes
suggestionsfeaturev4.5.25Compare Source
Fixes
v4.5.24Compare Source
Fixes
ignore_errors(true)and when a suggestion is provided for an unknown argumentv4.5.23Compare Source
Fixes
allow_negative_numbers, allowEagainv4.5.22Compare Source
Fixes
v4.5.21Compare Source
Fixes
ignore_errors(true)v4.5.20Compare Source
Features
CommandExtv4.5.19Compare Source
Internal
v4.5.18Compare Source
Features
Arg::get_display_orderandCommand::get_display_orderv4.5.17Compare Source
Fixes
v4.5.16Compare Source
Fixes
derivefeature is missingv4.5.15Compare Source
Compatiblity
Arg::removechanged return typesFixes
Arg::removereturn the removed itemv4.5.14Compare Source
Features
Arg::addfor attaching arbitrary state, like completion hints, toArgwithoutArgknowing about itv4.5.13Compare Source
Fixes
#[flatten]ing an optional#[group(skip)]v4.5.12Compare Source
v4.5.11Compare Source
v4.5.10Compare Source
v4.5.9Compare Source
Fixes
v4.5.8Compare Source
Fixes
v4.5.7Compare Source
Fixes
num_argsv4.5.6Compare Source
v4.5.5Compare Source
Features
default_values_if,default_values_ifsv4.5.4Compare Source
Fixes
v4.5.3Compare Source
Fixes
v4.5.2Compare Source
Fixes
ArgMatches::args_presentso not-present flags are considered not-present (matching the documentation)v4.5.1Compare Source
Internal
v4.5.0Compare Source
Compatibility
v4.4.18Compare Source
Fixes
usagefeature, ensure the list of required arguments is uniquev4.4.17Compare Source
Fixes
panic!when mixingargs_conflicts_with_subcommandswithArgGroup(which is implicit withderive) introduced in 4.4.15v4.4.16Compare Source
Fixes
v4.4.15Compare Source
Fixes
args_conflicts_with_subcommandsargs_conflicts_with_subcommandswhen using subcommand short and long flagsv4.4.14Compare Source
Documentation
findcookbook entry to allow repeats of flags/optionsFeatures
num_args(0)on options which allows making them emulate being a flag for position-tracking flagsv4.4.13Compare Source
Documentation
v4.4.12Compare Source
Performance
TypedValueParserfor possible values if neededv4.4.11Compare Source
Features
Command::mut_groupv4.4.10Compare Source
Documentation
v4.4.9Compare Source
Fixes
Command::aboutunder flattened headingshidewhen flattening subcommandsv4.4.8Compare Source
Features
Command::flatten_helpto allowgit stash -hlike help for subcommandsv4.4.7Compare Source
Performance
v4.4.6Compare Source
Internal
anstreamv4.4.5Compare Source
Fixes
nameorlong_flag, allow ambiguous-looking matches that unambiguously map back to the same commandlong_flag, don't panicv4.4.4Compare Source
Internal
terminal_sizeto 0.3v4.4.3Compare Source
Documentation
v4.4.2Compare Source
Performance
once_celldependencyv4.4.1Compare Source
Fixes
usagefeature, ensure the list of required arguments is uniquev4.4.0Compare Source
compatibility
v4.3.24Compare Source
Fixes
--helpwith custom templatesiamcodemaker/console_log (console_log)
v1.0.0Compare Source
This is a re-release of v0.2.2. There have been no major code changes for over two years. Let's call it stable. 🎉
Full Changelog: https://github.com/iamcodemaker/console_log/compare/0.2.2...1.0.0
graphql-rust/graphql-client (graphql_client)
v0.14.0Compare Source
extend typedirectivegraphqls://schemagenerate_module_token_stream_from_stringto allow custom macro wrappersrust-lang-nursery/lazy-static.rs (lazy_static)
v1.5.0Compare Source
leptos-rs/leptos (leptos)
v0.8.14Compare Source
What's Changed
From<Fn() -> T> for Signal<T>,ArcSignal<T>,Callback<T, _>and similar by @zakstucke in https://github.com/leptos-rs/leptos/pull/4273Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.13...v0.8.14
v0.8.13Compare Source
What's Changed
Debugtrait bound on tuplesPossibleRouteMatchimplementation by @alexisfontaine in https://github.com/leptos-rs/leptos/pull/4428SendWrappererrors on server (closes #4432, #4402) by @gbj in https://github.com/leptos-rs/leptos/pull/4433New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.12...v0.8.13
v0.8.12Compare Source
What's Changed
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.11...v0.8.12
v0.8.11Compare Source
What's Changed
MaybePropReadUntrackedimplementation. by @Buzzec in https://github.com/leptos-rs/leptos/pull/4360scrollendevent to view macro by @adoyle0 in https://github.com/leptos-rs/leptos/pull/4379NodeRefby implementingIsDisposedby @gbj in https://github.com/leptos-rs/leptos/pull/4367debug_loganddebug_errorin logging module by @mahdi739 in https://github.com/leptos-rs/leptos/pull/4335effect::immediate::batchby @QuartzLibrary in https://github.com/leptos-rs/leptos/pull/4344server_fnfeature propagation by @arpadav in https://github.com/leptos-rs/leptos/pull/4375AtIndex(closes #4385) by @gbj in https://github.com/leptos-rs/leptos/pull/4389dry_resolve()call onSuspend(closes #4402) by @gbj in https://github.com/leptos-rs/leptos/pull/4404bitcodeencoding/decoding to server fn IO by @arpadav in https://github.com/leptos-rs/leptos/pull/4376New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.10...v0.8.11
v0.8.10Compare Source
What's Changed
subsecondand an example by @gbj in https://github.com/leptos-rs/leptos/pull/4307__wasm_split.*.jsfile (closes #4322) by @gbj in https://github.com/leptos-rs/leptos/pull/4327New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.9...v0.8.10
v0.8.9Compare Source
This includes patch releases to the
reactive_graph,tachys,wasm_split_macros,server_fn,leptos, androutercrates.What's Changed
Vec<AnyAttribute>(closes #4268) by @gbj in https://github.com/leptos-rs/leptos/pull/4270referrerpolicyattribute toaelement by @adoyle0 in https://github.com/leptos-rs/leptos/pull/4299Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.8...v0.8.9
v0.8.8What's Changed
commandandcommandforattributes for button by @mskorkowski in https://github.com/leptos-rs/leptos/pull/4194Patchfor a struct with generic arguments by @mskorkowski in https://github.com/leptos-rs/leptos/pull/4175task::spawnmaintains reactive ownership (closes #4203) by @gbj in https://github.com/leptos-rs/leptos/pull/4206Vec<_>to optimize large subscriber sets (see #4138) by @gbj in https://github.com/leptos-rs/leptos/pull/4201hydrate_asyncthroughOwnedViewproperly (closes #4219) by @gbj in https://github.com/leptos-rs/leptos/pull/4220non_snake_caseanddead_codelints to run within component functions by @yescallop in https://github.com/leptos-rs/leptos/pull/3198<ShowLet>component similar to<Show>but forOptionby @maccesch in https://github.com/leptos-rs/leptos/pull/4227valueproperty to support quirky<select>behavior by @gbj in https://github.com/leptos-rs/leptos/pull/4235<Show>accept signals in addition to closures by @maccesch in https://github.com/leptos-rs/leptos/pull/4236leptos_serverby @gbj in https://github.com/leptos-rs/leptos/pull/4250New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.6...v0.8.8
v0.8.6Compare Source
Just a patch release, mostly to support
#[server] #[lazy]for lazy server functions.Going forward, patch releases for various crates will have version numbers that are not coupled to one another, and will only be bumped when they've actually changed; so this release is 0.8.6 for
leptos,leptos_macro, andserver_fn_macro, but does not arbitrarily bump other packages that haven't changed.See 0.8.5 for notes on WASM splitting.
What's Changed
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.5...v0.8.6
v0.8.5: : WASM code splitting released!Compare Source
This release includes WASM code-splitting/lazy-loading support, in tandem with the latest
cargo-leptosrelease.You can use the
lazy_routesexample to understand what this means!Essentially, though, there are two patterns:
#[lazy]macro to make any given function lazy#[lazy_route]to designate a route with a lazy-loaded view, which is loaded concurrently with the route's data#[lazy]converts a (sync or async) function into a lazy-loaded async function#[lazy_route]lets you split routes into a "data" half and a "view" half, which will be concurrently loaded by the router. This works with nested routing: so if you have ViewD and ViewE, then the router will concurrently load D's data, D's (lazy) view, E's data, and E's (lazy) view, before navigating to the page.Our whole July stream was dedicated to the topic, if you want more in depth discussion.
What's Changed
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.4...v0.8.5
v0.8.4Compare Source
There are some small bugfixes in here, as well as improvements to the hot-reloading code. This is mostly intended to be a sort of "last patch" before merging the code-splitting changes in #3988, so that there is a patch people can pin to in case those inadvertently introduce any regressions.
What's Changed
debug_log!,debug_error!,console_debug_logandconsole_debug_errorby @mahdi739 in https://github.com/leptos-rs/leptos/pull/4160New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.3...v0.8.4
v0.8.3Compare Source
This is a minor patch release. It does include a significant re-write of how ownership/context work with nested routes (#4091). This should close a number of bugs. However, it's always possible that changes like this introduce regressions. Please test to see whether you have any issues with context and nested routing, and let me know. (We have a new
regressionexample set up to add e2e regression tests for issues going forward.)What's Changed
SsrMode::PartiallyBlocked(closes #3963) by @marcuswhybrow in https://github.com/leptos-rs/leptos/pull/3964Vec<_>before it is mounted (closes #3962) by @gbj in https://github.com/leptos-rs/leptos/pull/3966Resource::write()and similar functions (see #3959) by @gbj in https://github.com/leptos-rs/leptos/pull/3984#[component]macro by @mondeja in https://github.com/leptos-rs/leptos/pull/3989Arc::ptr_eqfor string comparison (closes #3983) by @gbj in https://github.com/leptos-rs/leptos/pull/3994#[prop(default = ...)]and#[prop(name = ...)]by @mondeja in https://github.com/leptos-rs/leptos/pull/4003<select>value by ensuring HTML children are mounted before setting attributes (closes #4005) by @gbj in https://github.com/leptos-rs/leptos/pull/4008session_auth_axumexample by @gbj in https://github.com/leptos-rs/leptos/pull/4033#[middleware]macros (closes #4029) by @gbj in https://github.com/leptos-rs/leptos/pull/4048<For/>that is not currently mounted (closes #3385) by @gbj in https://github.com/leptos-rs/leptos/pull/4050asyncblock of aResource(closes #4060) by @gbj in https://github.com/leptos-rs/leptos/pull/4061viewmacro. by @metatoaster in https://github.com/leptos-rs/leptos/pull/4071reactive_storesby @elias098 in https://github.com/leptos-rs/leptos/pull/4056LocalResourceto anAsyncDerived(closes #4063) by @gbj in https://github.com/leptos-rs/leptos/pull/4077()attributes intemplate(closes #4079) by @gbj in https://github.com/leptos-rs/leptos/pull/4080IntoFragmentforAnyViewby @gbj in https://github.com/leptos-rs/leptos/pull/4087classand other attributes to<A/>component by @gbj in https://github.com/leptos-rs/leptos/pull/4086svg::InertElementfordomcache. by @bicarlsen in https://github.com/leptos-rs/leptos/pull/4100svg::InertElementtemplates in SVG namespace. by @bicarlsen in https://github.com/leptos-rs/leptos/pull/4104takefor BrowserFormData by @veigaribo in https://github.com/leptos-rs/leptos/pull/4102join_contextsAPI by @gbj in https://github.com/leptos-rs/leptos/pull/4113New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.2...v0.8.3
v0.8.2Compare Source
For 0.8 release notes in general, see
0.8.0. This patch release mostly addresses a bad issue with hydrating<Stylesheet/>and other meta components. (See #3945 #3946)What's Changed
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.1...v0.8.2
v0.8.1Compare Source
For 0.8 release notes in general, see
0.8.0. This patch release is mostly just a bunch of bugfixes for issues raised or fixed since then.What's Changed
StaticVec::rebuild()by aligning implementation withVec::rebuild()(closes #3906) by @gbj in https://github.com/leptos-rs/leptos/pull/3920counter_isomorphicrelease build with the leptos_debuginfo by @sabify in https://github.com/leptos-rs/leptos/pull/3918RenderEffectare dropped while dropped aRenderEffect(closes #3922) by @gbj in https://github.com/leptos-rs/leptos/pull/3926Eitherto determine how to render islands (see #3896; closes #3929) by @gbj in https://github.com/leptos-rs/leptos/pull/3938.map()and.and_then()onLocalResourceby @gbj in https://github.com/leptos-rs/leptos/pull/3941islands_routerimprovements by @gbj in https://github.com/leptos-rs/leptos/pull/3942New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.8.0...v0.8.1
v0.8.0Compare Source
*Changelog relative to
0.7.8. *0.8 has been planned for a while, primarily to accommodate small changes that arose during the course of testing and adopting 0.7, most of which are technically semver-breaking but should not meaningfully affect user code. I think it's a significant QOL and user DX upgrade and I'm excited to properly release it.
Noteworthy features:
--cfg=erase_components, which is useful as a dev-mode optimization (thanks to @zakstucke) This is the default setting forcargo-leptoswith its latest release, and can be set up manually for use with Trunk. (See docs here.)islands-routerfeatures that allow a client-side routing experience while using islands (see theislands_routerexample) (this one was me)FromServerFnErrorrather than being constrained to useServerFnError(see #3274). (Note: This will require changes if you're using a custom error type, but should be a better experience.) (thanks to @ryo33)LocalResourceno longer exposes aSendWrapperin the API for the types it returns. (Breaking change: this will require removing some.as_deref()and so on when usingLocalResource, but ends up with a much better API.)As you can see this was a real team effort and, as always, I'm grateful for the contributions of everyone named above, and all those who made commits below.
WebSocket Example
The WebSocket support is particularly exciting, as it allows you to call server functions using the default Rust
Streamtrait from thefuturescrate, and have those streams send messages over websockets without you needing to know anything about that process. The API landed in a place that feels like a great extension of the "server function" abstraction in which you can make HTTP requests as if they were ordinary async calls. The websocket stuff doesn't integrate directly with Resources/SSR (which make more sense for one-shot things) but is really easy to use:What's Changed
PossibleRouteMatchdyn-safe by @gbj in https://github.com/leptos-rs/leptos/pull/3421axumtov0.8by @sabify in https://github.com/leptos-rs/leptos/pull/3439IntoFutureforSuspend::new()(closes #3509) by @gbj in https://github.com/leptos-rs/leptos/pull/3532Defaultimpl forLeptosOptionsandConfFileby @chrisp60 in https://github.com/leptos-rs/leptos/pull/3522AddAnyAttrlogic contained by @gbj in https://github.com/leptos-rs/leptos/pull/3562Option<_>instyle:(closes #3568) by @gbj in https://github.com/leptos-rs/leptos/pull/3618Resultalias by @gbj in https://github.com/leptos-rs/leptos/pull/3543IntoSplitSignalfor(Signal<T>, SignalSetter<T>)(closes #3634) by @gbj in https://github.com/leptos-rs/leptos/pull/3643HashedStylesheet(closes #3633) by @gbj in https://github.com/leptos-rs/leptos/pull/3654IntoClassfor store fields by @mahdi739 in https://github.com/leptos-rs/leptos/pull/3670TextPropare kept reactive (closes: #3689) by @mahdi739 in https://github.com/leptos-rs/leptos/pull/3690Action::new_unsync(closes #3328) by @gbj in https://github.com/leptos-rs/leptos/pull/3705AsRefbound ofStoreFieldIteratorblanket impl withLenbound by @DanikVitek in https://github.com/leptos-rs/leptos/pull/3701shellparameter infile_and_error_handler*generic by @tversteeg in https://github.com/leptos-rs/leptos/pull/3711Action::new_local()(closes #3746) by @gbj in https://github.com/leptos-rs/leptos/pull/3749extract()helper to useServerFnErrorErr(closes #3745) by @ilyvion in https://github.com/leptos-rs/leptos/pull/3750Effect::watch): refer todependency_fnandhandlerargs by @jmevel in https://github.com/leptos-rs/leptos/pull/3731rust-toolchain.toml(closes #3717) by @gbj in https://github.com/leptos-rs/leptos/pull/3752SignalSetterto prelude (closes #3547) by @gbj in https://github.com/leptos-rs/leptos/pull/3753IntoFragmentfor single element (closes #3757) by @gbj in https://github.com/leptos-rs/leptos/pull/3759Action::new_localand similar primitives by @gbj in https://github.com/leptos-rs/leptos/pull/3762MaybeSendWrapperOption<_>by @gbj in https://github.com/leptos-rs/leptos/pull/3781ParentRouteby @gbj in https://github.com/leptos-rs/leptos/pull/3784class=for all tuples, not only static ones (closes #3794) by @gbj in https://github.com/leptos-rs/leptos/pull/3801<Title/>by @gbj in https://github.com/leptos-rs/leptos/pull/3793SendOptionfrom public API of actions by @gbj in https://github.com/leptos-rs/leptos/pull/3812Resultreturn types forserver_fnby @ifiokjr in https://github.com/leptos-rs/leptos/pull/3755Selector::selectedby @flisky in https://github.com/leptos-rs/leptos/pull/3694cargo all-features clippy|nextestpart of build process by @sabify in https://github.com/leptos-rs/leptos/pull/3767additional_contextafter providing other server context in all cases by @gbj in https://github.com/leptos-rs/leptos/pull/3841ByteStreamerror handling by @sabify in https://github.com/leptos-rs/leptos/pull/3869TextPropin the prelude (closes #3877) by @huuff in https://github.com/leptos-rs/leptos/pull/3879Stylesheetdocs by @gbj in https://github.com/leptos-rs/leptos/pull/3898children(closes #3904) by @gbj in https://github.com/leptos-rs/leptos/pull/3905impl From<MappedSignal<T>> for Signal<T>(closes #3889) by @gbj in https://github.com/leptos-rs/leptos/pull/3897New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.7.8...v0.8.0
v0.7.8Compare Source
A minor release with some quality of life improvements and bugfixes
What's Changed
either_ofminimum version in workspace by @gbj in https://github.com/leptos-rs/leptos/pull/3612()by @gbj in https://github.com/leptos-rs/leptos/pull/3615DebugforArcFieldandFieldby @mahdi739 in https://github.com/leptos-rs/leptos/pull/3660/separator (closes #3527) by @gbj in https://github.com/leptos-rs/leptos/pull/3662bind:groupto correct location (closes #3678) by @gbj in https://github.com/leptos-rs/leptos/pull/3680NodeRef::on_load()to avoid re-triggering it if you read something reactively (closes #3684) by @gbj in https://github.com/leptos-rs/leptos/pull/3686ImmediateEffectby @QuartzLibrary in https://github.com/leptos-rs/leptos/pull/3650ImmediateEffectfollow up by @QuartzLibrary in https://github.com/leptos-rs/leptos/pull/3692impl Patchbesyn::Indexinstead ofusizeby @DanikVitek in https://github.com/leptos-rs/leptos/pull/3700New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.7.7...v0.7.8
v0.7.7If you're migrating from 0.6 to 0.7, please see the 0.7.0 release notes here.
This is a small patch release including primarily bugfixes, and some small ergonomic improvements.
What's Changed
From<ArcField<T>>forField<T>by @gbj in https://github.com/leptos-rs/leptos/pull/3533AttributeforEither<A, B>by @alexisfontaine in https://github.com/leptos-rs/leptos/pull/3556cargo install --lockedforcargo-leptosinstallation by @gbj in https://github.com/leptos-rs/leptos/pull/3559style:etc. (closes #3554) by @gbj in https://github.com/leptos-rs/leptos/pull/3558erase_componentsonEither<A, B>by @alexisfontaine in https://github.com/leptos-rs/leptos/pull/3572storeattribute signature error message by @DanikVitek in https://github.com/leptos-rs/leptos/pull/3567:captureflag for events to handle them during capture phase (closes #3457) by @gbj in https://github.com/leptos-rs/leptos/pull/3575<fieldset>attributes by @alexisfontaine in https://github.com/leptos-rs/leptos/pull/3581New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.7.5...v0.7.7
v0.7.5Compare Source
If you're migrating from 0.6 to 0.7, please see the 0.7.0 release notes here.
This is a small patch release including primarily bugfixes.
What's Changed
ErrorBoundarythrough reactive views (closes #3487) by @gbj in https://github.com/leptos-rs/leptos/pull/3492#[lazy]macros to support lazy loading and code splitting by @gbj in https://github.com/leptos-rs/leptos/pull/3477leptos_0.8branch by @gbj in https://github.com/leptos-rs/leptos/pull/3500node_refafter{..}on arbitrary components by @gbj in https://github.com/leptos-rs/leptos/pull/3503either_of): Extent API; Implement other iterator methods; Update deps by @DanikVitek in https://github.com/leptos-rs/leptos/pull/3478matchesmethod for Callback and UnsyncCallback by @geoffreygarrett in https://github.com/leptos-rs/leptos/pull/3520New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.7.4...v0.7.5
v0.7.4Compare Source
If you're migrating from 0.6 to 0.7, please see the 0.7.0 release notes here.
This is a small patch release including a couple of bugfixes,
What's Changed
leptos_metacomponents (closes #3482) by @gbj in https://github.com/leptos-rs/leptos/pull/3485New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.7.3...v0.7.4
v0.7.3Compare Source
If you're migrating from 0.6 to 0.7, please see the 0.7.0 release notes here.
This is a small patch release including a couple of bugfixes, as well as the ability to destructure prop value in components with a new
#[prop(name = ...)]syntax (see #3382)What's Changed
consolefeature ofweb-sysforreactive_graphby @alexisfontaine in https://github.com/leptos-rs/leptos/pull/3406getrandomneedsjsfeature (used whennoncefeature is active) (closes #3409) by @gbj in https://github.com/leptos-rs/leptos/pull/3410file_and_error_handlerby @spencewenski in https://github.com/leptos-rs/leptos/pull/3408#[track_caller]s by @mscofield0 in https://github.com/leptos-rs/leptos/pull/3422islandsmention fromleptos_axumby @chrisp60 in https://github.com/leptos-rs/leptos/pull/3423Defaultto stores by @mscofield0 in https://github.com/leptos-rs/leptos/pull/3432DisposeforStoreby @mscofield0 in https://github.com/leptos-rs/leptos/pull/3429erase_componentswith AttributeInterceptor by @gbj in https://github.com/leptos-rs/leptos/pull/3435New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.7.2...v0.7.3
v0.7.2Compare Source
If you're migrating from 0.6 to 0.7, please see the 0.7.0 release notes here.
This is a small patch release including a couple of bugfixes, importantly to the hydration of static text nodes on
nightly.What's Changed
popovertargetandpopovertargetactionfor the<button>element by @Figments in https://github.com/leptos-rs/leptos/pull/3379From<ArcStore<T>>forStore<T, S>by @mscofield0 in https://github.com/leptos-rs/leptos/pull/3389let:syntax (closes #3387) by @gbj in https://github.com/leptos-rs/leptos/pull/3391nightly(closes #3395) by @gbj in https://github.com/leptos-rs/leptos/pull/3396New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.7.1...v0.7.2
v0.7.1Compare Source
If you're migrating from 0.6 to 0.7, please see the 0.7.0 release notes here.
This is just a small patch release, two weeks after the 0.7.0 release, geared toward fixing in bugs and filling in API holes since then.
What's Changed
Vec<_>in the DOM (closes #3321) by @gbj in https://github.com/leptos-rs/leptos/pull/3324!SendActix APIs in server functions by @gbj in https://github.com/leptos-rs/leptos/pull/3326scrollprop to<A/>component to control scrolling behavior (closes #2666) by @gbj in https://github.com/leptos-rs/leptos/pull/3333either!macro by @bicarlsen in https://github.com/leptos-rs/leptos/pull/3337<noscript>(closes #3360) by @gbj in https://github.com/leptos-rs/leptos/pull/3363ToChildren::to_childrendocs. by @bicarlsen in https://github.com/leptos-rs/leptos/pull/3352usizeby @marcuswhybrow in https://github.com/leptos-rs/leptos/pull/3346Signal::derive()behavior by @gbj in https://github.com/leptos-rs/leptos/pull/3351InertElement(closes #3368) by @gbj in https://github.com/leptos-rs/leptos/pull/3370cargo-semver-checkson PRs by @gbj in https://github.com/leptos-rs/leptos/pull/3375New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.7.0...v0.7.1
v0.7.0Compare Source
At long last, as the culmination of more than a year of work, the 0.7 release has arrived!
0.7 is a nearly-complete rewrite of the internals of the framework, with the following goals:
Getting Started
0.7 works with the current
cargo-leptosversion. If you want to start exploring, there are starter templates for Axum and Actix. Each template is only three files. They show some of the boilerplate differences; for more details, see below.Axum:
cargo leptos new --git https://github.com/leptos-rs/start-axum(repo)Actix:
cargo leptos new --git https://github.com/leptos-rs/start-actix(repo)New Features
.awaiton resources andasyncin<Suspense/>Currently,
create_resourceallows you to synchronously access the value of some async data as eitherNoneorSome(_). However, it requires that you always access it this way. This has some drawbacks:Now, you can
.awaita resource, and you can useasyncblocks within a<Suspense/>via theSuspendwrapper, which makes it easier to chain two resources:Reference-counted signal types
One of the awkward edge cases of current Leptos is that our
Copyarena for signals makes it possible to leak memory if you have a collection of nested signals and do not dispose them. (See 0.6 example.) 0.7 exposesArcRwSignal,ArcReadSignal, etc., which areClonebut notCopyand manage their memory via reference counting, but can easily be converted into the copyableRwSignaletc. This makes working with nested signal correctly much easier, without sacrificing ergonomics meaningfully. See the 0.7countersexample for more..read()and.write()on signalsYou can now use
.read()and.write()to get immutable and mutable guards for the value of a signal, which will track/update appropriately: these work like.with()and.update()but without the extra closure, or like.get()but without cloning.Custom HTML shell
The HTML document "shell" for server rendering is currently hardcoded as part of the server integrations, limiting your ability to customize it. Now you simply include it as part of your application, which also means that you can customize things like teh
<title>without needing to useleptos_meta.Enhanced attribute spreading
Any valid attribute can now be spread onto any component, allowing you to extend the UI created by a component however you want. This works through multiple components: for example, if you spread attributes onto a
Suspensethey will be passed through to whatever it returns.Improved
<ProtectedRoute/>The current
ProtectedRoutecomponent is not great: it checks the condition once, synchronously, on navigation, and so it doesn't respond to changes and can't easily be used with async data. The newProtectedRouteis reactive and uses Suspense so you can use resources or reactive data. There are examples of this now inrouterandssr_modes_axum.Two-way binding with
bind:syntaxTwo-way binding allows you to pass signals directly to inputs, rather than separately managing
prop:valueandon:inputto sync the signals to the inputs.Reactive Stores
Stores are a new reactive primitive that allow you to reactively access deeply-nested fields in a struct without needing to create signals inside signals; rather, you can use plain data types, annotated with
#[derive(Store)], and then access fields with reactive getters/setters.Updating one subfield of a
Storedoes not trigger effects only listening to a sibling field; listening to one field of a store does not track the sibling fields.Stores are most useful for nested data structures, so a succinct example is difficult, but the
storesexample shows a complete use case.Support the View Transition API for router animations
The
Routes/FlatRoutescomponent now have atransitionprop. Setting this totruewill cause the router to use the browser's View Transition API during navigation. You can control animations during navigation using CSS classes. Which animations are used can be controlled using classes that the router will set on the<html>element:.routing-progresswhile navigating,.router-backduring a back navigation, and.router-outlet-{n}for the depth of the outlet that is being changed (0for the root page changing,1for the firstOutlet, etc.) Therouterexample uses this API.Breaking Changes
Imports
I'm reorganizing the module structure to improve docs and discoverability. We will still have a prelude that can be used for glob imports of almost everything that's currently exported from the root.
Likewise, the router exposes things via
leptos_router::componentsandleptos_router::hooks. rust-analyzer can help fix imports fairly well.I'm hoping for feedback on the new module structure, whether it makes sense, and any improvements. I have not done too much work to sort through the reexports, look at how docs look, etc. yet.
Naming
We're migrating away from
create_naming toward more idiomatic Rust naming patterns:create_signaltosignal(likechannel)create_rw_signaltoRwSignal::new()I've left some of the current functions in, marked deprecated; others may have been missed, but should be easy to find via docs.rs.
Type erasure and view types
One of the major changes in this release is replacing the
Viewenum with statically-typed views, which is where most of the binary size savings come from. If you need to branch and return one of several types, you can either use one of theEitherenums inleptos::either, or you can use.into_any()to erase the type. Generally speaking the compiler can do its job better if you maintain more type information so theEithertypes should be preferred, butAnyViewis not bad to use when needed.Boilerplate
There have been changes to the SSR and hydration boilerplate, which include (but aren't limited to)
get_configurationis sync (remove the.await).leptos_routesno longer takesLeptosOptionsas an argumentleptos::mount::hydrate_body(hydration) instead ofleptos::mount::mount_to_body(which is now CSR-specific)Check the starter templates for a good setup.
Route definitions
The patterns for route definition have changed in several ways.
fallbackis now a required prop on<Routes/>, rather than an optional prop on<Router/><FlatRoutes/>component that optimizes for this case<ParentRoute/>path="foo"becomespath=StaticSegment("foo"), and there arepath=":id"becomespath=ParamSegment("id"),path="posts/:id"becomespath=(StaticSegment("posts"), ParamSegment("id")), and so on. There is apath!()macro that will do this for you: i.e., it will expandpath!("/foo/:id")topath=(StaticSegment("foo"), ParamSegment("id")).See the
routerandhackernewsexamples.Send/SyncsignalsBy default, the data held in reactive primitives (signals, memos, effects) must be safe to send across threads. For non-threadsafe types, there is a "storage" generic on signal types. This defaults to
SyncStorage, but you can optionally specifyLocalStorageinstead. Many APIs have_local()alternatives to enable this.Custom
IntoViewandIntoAttributeimplementationsIf you currently have implementations of
IntoVieworIntoAttributefor custom data types, in a way that allows you to use them directly in the view, you should replace those with implementations ofIntoRenderandIntoAttributeValue, respectively. See this PR for examples.Minor Breaking Changes
Awaitcomponent now takes a plainFuturefor itsfutureprop rather than aFn() -> Future, because it uses an optimized resource implementationIntoRenderrather thanIntoView(see discussion in #3062)ParamsMapsupports multiple values per key (which is supported by query strings), so the API now differentiates between inserting a new value for the same key and replacing the value, and between getting one value and getting all values for a keyStylesheetcomponent no longer automatically works with the file hashing feature ofcargo-leptos. You can useHashedStylesheetand pass it the appropriate props instead.<A>component with aclassprop that set theclasson the<a>element.) These have been replaced by the new attribute-spreading API, to reduce complexity of the components themselves.LeptosOptionsnow usesArc<str>for its fields that were formerlyString, so that it is less expensive to clone. In practice, this usually only means using&fieldorfield.as_ref()in a few places that require&str, and so on.experimental-islandsfeature renamed toislandsbatchfunction no longer exists: all updates now exhibit the batching behavior that was previously opt-in viabatch.into_any()at the end of the component that you are going to use recursively.Signal<T>no longer directly implementsFrom<Fn() -> T>, which allows it to implementFrom<T>and therefore to be a more useful replacement forMaybeSignal<T>, for a prop that is "someTor any signal that returnsT." To convert a closure into aSignal<_>you can callSignal::derive()explicitly. I know this makes the ergonomics of using theSignal<_>wrapper slightly worse, but it adds additional expressiveness by supporting plainT. (If you want to keep the old behavior, consider takingimpl Fn() -> Tas a prop if you are using nightly, where all the signals as well as closures implement this trait.)Miscellaneous
I'm sure there are a bunch of small and larger changes I have not mentioned above. By the time of final release, help compiling a total list of breaking changes/migration guide would be much appreciated. At present, the starter templates and the
examplesdirectory in the PR can provide a pretty comprehensive set of changes.On storing views in signals...
There's a pattern I've seen many use that I do not particularly like, but accidentally enabled through the way APIs happened to be (or needed to be) designed in Leptos 0.1-0.6, in which a user stores some view in a signal and then reads it somewhere else. This was possible because
Viewneeded to beClonefor internal reasons. Some users used this to create custom control flow: for example, you could create a global "header view" signal, and then update it from leaf components by storing a new view in it.I'd consider this a bit of an antipattern, for a couple reasons:
Clonebut in a surprising way: you can clone the reference to a DOM node, but that is a shallow, not a deep clone, and if you use it in multiple places by.get()ing the signal more than once, it will only appear in the last locationIn the statically-typed view tree, views are not necessarily cloneable (including the
AnyViewtype), so they can't easily be stored in a signal.However, it is possible to achieve a similar goal by using a "reactive channel" pattern instead:
Send the views through a channel means they do not need to be cloned, and won't be used in more than once place (avoiding the edge cases of 2 above.) Each time you send a view through the channel, simply trigger the trigger.
v0.6.15Compare Source
Belated release notes for 0.6.15. This was a quick patch release to incorporate two changes, one to improve rust-analyzer support and the other to switch from the unmaintained
proc-macro-errortoproc-macro-error2per RUSTSEC.What's Changed
proc-macro-error2to address unmaintained security advisory. by @azriel91 in https://github.com/leptos-rs/leptos/pull/2935Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.14...v0.6.15
v0.6.14Compare Source
Hello everyone, The biggest change in this update is to handle wasm-bindgen 0.2.93 and web_sys 0.3.70 Thanks to @sabify and @maccesch for those PRs. As always, let us know if there's issues.
What's Changed
wasm-bindgenandweb-sysfor leptos 0.6 by @sabify in https://github.com/leptos-rs/leptos/pull/2830New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.13...v0.6.14
v0.6.13Compare Source
This release mostly includes a series of small bugfixes (see below), but also includes a fix for the annoying issues we'd been having with rust-analyzer (#2527).
What's Changed
rkyvfeature interaction with Axum integration by @gbj in https://github.com/leptos-rs/leptos/pull/2631ToChildrenby @spencewenski in https://github.com/leptos-rs/leptos/pull/2643New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.12...v0.6.13
v0.6.12Compare Source
This is mainly a maintenance release, but includes a couple new features that I want to point out:
impl Traitin Component PropsYou can now use
impl Traitsyntax directly in component props, rather than explicitly specifying a generic and awhereclausebefore
after
Support spreading dynamic attributes from one component to another
In the following code
Bardoesn't currently inherit attributes fromFoowhen it spreads its attributes. PR #2534 fixes this.Complete Changelog
<ActionForm>onformmethod="dialog"submission (closes #2523) by @gbj in https://github.com/leptos-rs/leptos/pull/2531Ocoseparately asoco_refcrate so that it can be used elsewhere by @gbj in https://github.com/leptos-rs/leptos/pull/2536input_deriveparameter to#[server]macro (closes #2544) by @luxalpa in https://github.com/leptos-rs/leptos/pull/2545empty_docswarnings in#[component]macro by @abusch in https://github.com/leptos-rs/leptos/pull/2574--release) by @gbj in https://github.com/leptos-rs/leptos/pull/2587#[component]now handlesimpl Traitby converting to generic type params, fix #2274 by @MingweiSamuel in https://github.com/leptos-rs/leptos/pull/2599New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.11...v0.6.12
v0.6.11Compare Source
The primary purpose of this release is that it includes a fix for an unfortunate memory leak when using
leptos_routeron the server.Also included are
spreadexample for the full set of possibilities)IntoViewdirectly forRc<str>viewmacroIt's important to me to say that all three of the new features above were implemented by community members. This release brings us to over 250 total contributors over time, not to mention everyone who's done work on docs, templates, or libraries that exist outside this repo. Thank you to everyone who's been involved in this project so far.
What's Changed
Locationheader when usingleptos_actix::redirect()without JS/WASM (closes #2506) by @gbj in https://github.com/leptos-rs/leptos/pull/2507counter_isomorphicby @gbj in https://github.com/leptos-rs/leptos/pull/2510New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.10...v0.6.11
v0.6.10Compare Source
Mostly a patch release with a number of bugfixes, as well as some nice quality-of-life improvements:
#[prop(attrs)]on slotson:to dynamic children of components (i.e., when you do<MyComponent on:.../>, the event listener is now applied correctly to more of the children of<MyComponent/>)What's Changed
view! {}in hot-reloading code (closes #2421) by @gbj in https://github.com/leptos-rs/leptos/pull/2478New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.9...v0.6.10
v0.6.9Compare Source
Mostly this release exists to fix imports in Cargo, as well as a few minor bug fixes
What's Changed
New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.8...v0.6.9
v0.6.8Compare Source
Mostly this release is to disable file hashing by default, and streamline it's use. It can now be enabled by setting
hash-files=truein your Cargo.toml or setting theLEPTOS_HASH_FILES=trueenv var when running cargo-leptos. If you're using Docker or moving the bin to a new folder, you need to copy the (by default)hash.txtfile fromtarget/{release_profile_name}to the same folder as your binary, and make sure the env var or cargo.toml option is enabled. Also some minor bug fixesWhat's Changed
PartialEqremoved fromcreate_owning_memoby @zroug in https://github.com/leptos-rs/leptos/pull/2394New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.7...v0.6.8
v0.6.7: 0.6.7Compare Source
Hello everyone! Some lovely changes in here. My favorite is the addition of version hashes to css,js, and wasm files to automatically invalidate browser caching issues. Be sure to update to the latest version of cargo leptos(v0.2.8) to test out this feature. As always, big thanks to our returning contributors and welcome to the new folks!
What's Changed
impl_fromargument to#[server]proc_macro by @videobitva in https://github.com/leptos-rs/leptos/pull/2335FromUtf8Errorinoco.rsby @zoomiti in https://github.com/leptos-rs/leptos/pull/2318New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.6...v0.6.7
v0.6.6Compare Source
Fixed some issues with examples, integrated a server macro for Spin, and improved a number of typos. Thanks to all that participated!
For general 0.6 release notes, see here.
What's Changed
cargo fmtby @martinfrances107 in https://github.com/leptos-rs/leptos/pull/2254.into()calls consistent by @blorbb in https://github.com/leptos-rs/leptos/pull/2249.dispatch()an action immediately (closes #2225) by @gbj in https://github.com/leptos-rs/leptos/pull/2286server_fnby @gbj in https://github.com/leptos-rs/leptos/pull/2320tailwind_axumby @gbj in https://github.com/leptos-rs/leptos/pull/2324New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.5...v0.6.6
v0.6.5: 0.6.5Compare Source
This fixes a few bugs that have popped up since 0.6. For general 0.6 release notes, see here.
What's Changed
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.4...v0.6.5
v0.6.4: 0.6.4Compare Source
This fixes a few bugs that have popped up since 0.6.3. For general 0.6 migration notes, see here.
What's Changed
edtion = "2021"inrustfmt.tomlby @chrisp60 in https://github.com/leptos-rs/leptos/pull/2235create_local_resource(closes #2237) by @gbj in https://github.com/leptos-rs/leptos/pull/2238Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.3...v0.6.4
v0.6.3: 0.6.3Compare Source
This is release for our new server functions rewrite and Axum 0.7 support.
This should be a relatively feature-rich release, with limited breaking changes.
Migration
Actix
.handle_server_fns()call in yourmain.rs, as server functions are now handled in.leptos_routes()extractfunction has been removed, and replaced with a newextractthat has the same API as the currentextractor. I think this API is strictly better, but please share feedback if you disagree.Axum
http1.0 andtower_http0.5.).handle_server_fns()call in yourmain.rs, as server functions are now handled in.leptos_routes()extractfunction has been removed, and replaced with a newextractthat has the same API as the currentextractor. I think this API is strictly better, but please share feedback if you disagree.RequestPartshas been removed, ashttp::request::Partsnow implementsClone: anyuse_context::<RequestParts>()should be updated to usePartsdirectly instead.ServerFnError::new()The addition of custom error types means that constructing
ServerFnErrorinside server functions can cause type inference errors:As a result, we've added a helper
ServerFnError::newwhich simply constructs aServerFnError::<NoCustomError>::ServerError:This has the benefit of being more concise than the earlier pattern in any case.
Features
A rewritten server function system that is backwards-compatible, but reduces binary size and increases flexibility, specifically by allowing
.leptos_routes()from the integrationsIntoReq,FromReq,IntoRes, and/orFromRestraits#[middleware]macro to add per-server-function middleware from the Tower or Actix ecosystems (#1461)Note: The additional included encodings (
serde_lite,rkyv, multipart form data) are all enabled by additive features on theserver_fncrate. If you want to use them you can just add that crate as a dependency and enable the required features.Example: You can find a comprehensive example of these new features in the new
server_fns_axumexample.Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.7...0.6.3
v0.6.2Compare Source
This is release for our new server functions rewrite and Axum 0.7 support.
This should be a relatively feature-rich release, with limited breaking changes.
Migration
Actix
.handle_server_fns()call in yourmain.rs, as server functions are now handled in.leptos_routes()extractfunction has been removed, and replaced with a newextractthat has the same API as the currentextractor. I think this API is strictly better, but please share feedback if you disagree.Axum
http1.0 andtower_http0.5.).handle_server_fns()call in yourmain.rs, as server functions are now handled in.leptos_routes()extractfunction has been removed, and replaced with a newextractthat has the same API as the currentextractor. I think this API is strictly better, but please share feedback if you disagree.RequestPartshas been removed, ashttp::request::Partsnow implementsClone: anyuse_context::<RequestParts>()should be updated to usePartsdirectly instead.ServerFnError::new()The addition of custom error types means that constructing
ServerFnErrorinside server functions can cause type inference errors:As a result, we've added a helper
ServerFnError::newwhich simply constructs aServerFnError::<NoCustomError>::ServerError:This has the benefit of being more concise than the earlier pattern in any case.
Features
A rewritten server function system that is backwards-compatible, but reduces binary size and increases flexibility, specifically by allowing
.leptos_routes()from the integrationsIntoReq,FromReq,IntoRes, and/orFromRestraits#[middleware]macro to add per-server-function middleware from the Tower or Actix ecosystems (#1461)Note: The additional included encodings (
serde_lite,rkyv, multipart form data) are all enabled by additive features on theserver_fncrate. If you want to use them you can just add that crate as a dependency and enable the required features.Example: You can find a comprehensive example of these new features in the new
server_fns_axumexample.Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.7...0.6.2
v0.6.1: 0.6.1Compare Source
This is release for our new server functions rewrite and Axum 0.7 support.
This should be a relatively feature-rich release, with limited breaking changes.
Migration
Actix
.handle_server_fns()call in yourmain.rs, as server functions are now handled in.leptos_routes()extractfunction has been removed, and replaced with a newextractthat has the same API as the currentextractor. I think this API is strictly better, but please share feedback if you disagree.Axum
.handle_server_fns()call in yourmain.rs, as server functions are now handled in.leptos_routes()extractfunction has been removed, and replaced with a newextractthat has the same API as the currentextractor. I think this API is strictly better, but please share feedback if you disagree.RequestPartshas been removed, ashttp::request::Partsnow implementsClone: anyuse_context::<RequestParts>()should be updated to usePartsdirectly instead.ServerFnError::new()The addition of custom error types means that constructing
ServerFnErrorinside server functions can cause type inference errors:As a result, we've added a helper
ServerFnError::newwhich simply constructs aServerFnError::<NoCustomError>::ServerError:This has the benefit of being more concise than the earlier pattern in any case.
Features
A rewritten server function system that is backwards-compatible, but reduces binary size and increases flexibility, specifically by allowing
.leptos_routes()from the integrationsIntoReq,FromReq,IntoRes, and/orFromRestraits#[middleware]macro to add per-server-function middleware from the Tower or Actix ecosystems (#1461)Note: The additional included encodings (
serde_lite,rkyv, multipart form data) are all enabled by additive features on theserver_fncrate. If you want to use them you can just add that crate as a dependency and enable the required features.Example: You can find a comprehensive example of these new features in the new
server_fns_axumexample.Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.6...v0.6.1
v0.5.7Compare Source
This has been a rocky week for releases. While finalizing the work on 0.6.0, I intended to publish a final 0.5.5 that would contain all the remaining changes to the 0.5 series. Unfortunately, this release contained two serious issues:
trailing_slashchanges to the router in 0.5.5 broke the current routing behavior in several situations (see #2203 for details)Because some (many?) existing 0.5 apps would break with this new feature under 0.5 — and worse, because they would compile and then either panic or display the wrong page — I decide to revert the feature immediately. This meant a semver-breaking change between 0.5.6 and 0.5.7, so I have yanked 0.5.5 and 0.5.6 of all the crates.
We've added some appropriate regression tests for those issues. Apologies to anyone whose work was affected by this!
v0.5.6Compare Source
Fix issue were doc comments on server functions caused an error. Sorry bout that!
What's Changed
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.5...v0.5.6
v0.5.5Compare Source
This is a (mostly) bug fix and documentation improvements release. If you're interested in the full list, check out the full What's Changed list below.
What's New
Trailing Slash Changes
@NfNitLoop discovered that by default the leptos_router strips trailing slashes from routes, which might not be what users expect. By default, leptos_router drops the trailing slash on
/foo/. He's added a new optional setting on Router that could allow you to keep the slashes and have routes for both/fooand/foo/or redirect from/foo/to/foo. Check out the docs for details: https://docs.rs/leptos_router/0.5.5/leptos_router/enum.TrailingSlash.htmlThanks @NfNitLoop!
Thanks to all our new and existing contributors, the 0.6 alpha will be coming out soon with fancy new server functions, so don't go away!
What's Changed
spawn_localby @itowlson in https://github.com/leptos-rs/leptos/pull/2066<A/>and<Form/>(closes #2076) by @gbj in https://github.com/leptos-rs/leptos/pull/2096mount_to_bodyacceptFnOnceclosures (closes #2115) by @NKID00 in https://github.com/leptos-rs/leptos/pull/2116<Transition/>fallback should show on if client-rendered (closes #2123) by @gbj in https://github.com/leptos-rs/leptos/pull/2128#[component]or#[island]function signature (closes #2133) by @gbj in https://github.com/leptos-rs/leptos/pull/2134cargo-makeand examples (see #2141) by @gbj in https://github.com/leptos-rs/leptos/pull/2150traceto reduce verbosity by @gbj in https://github.com/leptos-rs/leptos/pull/2176New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.4...v0.5.5
v0.5.4Compare Source
v0.5.4v0.5.3inadvertently introduced a regression in the<A/>tag that broke[aria-current=page]. Here's 0.5.4 with a fix!0.5.3 release notes below:
Along with the usual set of bugfixes and small improvements, there are two noteworthy additions in this release.
Improved rust-analyzer support in
#[component]macro bodyGood LSP support for proc macros is hard, because proc macros depend on parsing a stream of input into a valid Rust syntax tree, but while typing you are constantly creating a stream of new, invalid trees. This release tweaks how the
#[component]macro emits code in order to enable better rust-analyzer support within the body of components.If you've disabled rust-analyzer inside
#[component]for better DX, try toggling that off and see if this is a better experience than it was before!Apologies for any regressions this causes. Please report any issues that arise.
Optional Context
<Provider/>ComponentSince 0.5.0, there've been a couple instances of bugs or confusing behavior related to the fact that context now follows the reactive graph, not the component tree (see #1986, #2038).
This release includes a
<Provider/>component that provides a certain value via context only to its children:provide_contextcontinues working as it has since 0.5.0, and if you're using it without problems you can ignore this, or use it if you prefer to aesthetics. If you're in a situation where you need to provide multiple context values of the same type and ensure that they are scoped correctly and that siblings do not overwrite one another, use<Provider/>. If you have no idea what I mean, check the issues above for examples of the bugs this fixes.What's Changed
aria-currentattribute value by @alexisfontaine in https://github.com/leptos-rs/leptos/pull/2089Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.3...v0.5.4
v0.5.3Compare Source
v0.5.3Along with the usual set of bugfixes and small improvements, there are two noteworthy additions in this release.
Improved rust-analyzer support in
#[component]macro bodyGood LSP support for proc macros is hard, because proc macros depend on parsing a stream of input into a valid Rust syntax tree, but while typing you are constantly creating a stream of new, invalid trees. This release tweaks how the
#[component]macro emits code in order to enable better rust-analyzer support within the body of components.If you've disabled rust-analyzer inside
#[component]for better DX, try toggling that off and see if this is a better experience than it was before!Apologies for any regressions this causes. Please report any issues that arise.
Optional Context
<Provider/>ComponentSince 0.5.0, there've been a couple instances of bugs or confusing behavior related to the fact that context now follows the reactive graph, not the component tree (see #1986, #2038).
This release includes a
<Provider/>component that provides a certain value via context only to its children:provide_contextcontinues working as it has since 0.5.0, and if you're using it without problems you can ignore this, or use it if you prefer to aesthetics. If you're in a situation where you need to provide multiple context values of the same type and ensure that they are scoped correctly and that siblings do not overwrite one another, use<Provider/>. If you have no idea what I mean, check the issues above for examples of the bugs this fixes.Complete Changelog
'staticbound onas_child_of_current_ownerby @gbj in https://github.com/leptos-rs/leptos/pull/1955IntoViewandIntoAttributeforstd::fmt::Argumentsimprovements by @tqwewe in https://github.com/leptos-rs/leptos/pull/1947newmethod toTriggerby @tqwewe in https://github.com/leptos-rs/leptos/pull/1935IntoAttributeforCow<'static, str>by @tqwewe in https://github.com/leptos-rs/leptos/pull/1945leptos_axum::build_static_routes(closes #1843) by @gbj in https://github.com/leptos-rs/leptos/pull/1855IntoAttributeforTextPropby @SleeplessOne1917 in https://github.com/leptos-rs/leptos/pull/1925login_with_token_csr_onlyby @gbj in https://github.com/leptos-rs/leptos/pull/1965stabletonightlyby @chrisp60 in https://github.com/leptos-rs/leptos/pull/1959leptos_router::params_map!by @chrisp60 in https://github.com/leptos-rs/leptos/pull/1973leptos_serverdocs.rs url to latest version. by @gibbz00 in https://github.com/leptos-rs/leptos/pull/1982hackernews_js_fetchstyle.csspath (closes #1992) by @gbj in https://github.com/leptos-rs/leptos/pull/1994<ErrorBoundary/>in a child so siblings don't collide (closes #1987) by @gbj in https://github.com/leptos-rs/leptos/pull/1991hackernews_js_fetchexample by @gbj in https://github.com/leptos-rs/leptos/pull/1997APP_ENVIRONMENTvariable by @gbj in https://github.com/leptos-rs/leptos/pull/2013Action::newandAction::serverby @chrisp60 in https://github.com/leptos-rs/leptos/pull/1998leptos_reactiveby @gbj in https://github.com/leptos-rs/leptos/pull/2014Attribute(closes #2023) by @gbj in https://github.com/leptos-rs/leptos/pull/2027create_effectfor<Portal/>to avoid hydration issues (closes #2010) by @gbj in https://github.com/leptos-rs/leptos/pull/2029DefaultforTextPropby @blorbb in https://github.com/leptos-rs/leptos/pull/2016ActionFormexamples for complex arguments by @chrisp60 in https://github.com/leptos-rs/leptos/pull/2017<Provider/>component to fix context shadowing (closes #2038) by @gbj in https://github.com/leptos-rs/leptos/pull/2040Fnin attribute (see #2023) by @gbj in https://github.com/leptos-rs/leptos/pull/2045Triggeras clean when it is re-tracked (closes #1948, #2048) by @gbj in https://github.com/leptos-rs/leptos/pull/2059#[component]macro? by @gbj in https://github.com/leptos-rs/leptos/pull/2075New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.2...v0.5.3
v0.5.2Compare Source
This has a bunch of bugfixes, small docs improvements, etc. but there are actually a bunch of cool new features, mostly from our growing body of contributors. See the full changelog below, but here are some highlights (apologies if I missed anything big)
Features
extractor()function with better APIThe
extractAPI is awkward due to closure. This adds anextractorfunction which is a little more ergonomic.<Portal/>Adds a portal component that lets you render some view mounted in a location other than where it appears in the view tree.
Server Function Named Arguments
Now that we've made all server function arguments optional, this adds in the ability to pass in one or more named arguments:
Directives
Adds support for directive functions, which can be used with
use:in the view:slice!()macroMakes it easier to define slices. Expands to the same output as
create_slice:What's Changed
leptos_reactive::Triggerby @hiraginoyuki in https://github.com/leptos-rs/leptos/pull/1844extractorfunctions with better API thanextractby @gbj in https://github.com/leptos-rs/leptos/pull/1859.try_with_untracked(closes #1880) by @gbj in https://github.com/leptos-rs/leptos/pull/1881#[must_use]to avoid accidental()rendering by @gbj in https://github.com/leptos-rs/leptos/pull/1885cargo make lintforhackernews_js_fetchby @gbj in https://github.com/leptos-rs/leptos/pull/1887ActionFormin an island by @gbj in https://github.com/leptos-rs/leptos/pull/1888on_cleanup(closes #1882) by @gbj in https://github.com/leptos-rs/leptos/pull/1889/in splat routes (closes #1764) by @gbj in https://github.com/leptos-rs/leptos/pull/1890newmethod toNodeRefby @tqwewe in https://github.com/leptos-rs/leptos/pull/1896Clonerequirement onSignalWithforResourceby @Xendergo in https://github.com/leptos-rs/leptos/pull/1895/in more routes by @PianoPrinter in https://github.com/leptos-rs/leptos/pull/1900try_update()andtry_set()onResourceshould not panic (closes #1915) by @gbj in https://github.com/leptos-rs/leptos/pull/1916defaultandwasmfeatures onleptos_axum(closes #1872) by @gbj in https://github.com/leptos-rs/leptos/pull/1883replaceproperty to form component by @koopa1338 in https://github.com/leptos-rs/leptos/pull/1923create_slice()by @SadraMoh in https://github.com/leptos-rs/leptos/pull/1867wee_allocto make Dependabot happy by @gbj in https://github.com/leptos-rs/leptos/pull/1938</head>tags in streaming responses (closes #1930) by @gbj in https://github.com/leptos-rs/leptos/pull/1932New Contributors
Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.1...v0.5.2
rust-lang/log (log)
v0.4.29Compare Source
v0.4.28Compare Source
v0.4.27Compare Source
What's Changed
Full Changelog: https://github.com/rust-lang/log/compare/0.4.26...0.4.27
v0.4.26Compare Source
What's Changed
Cloneforkv::Valueby @SpriteOvO in https://github.com/rust-lang/log/pull/668spdlog-rslink to crate doc by @SpriteOvO in https://github.com/rust-lang/log/pull/669Full Changelog: https://github.com/rust-lang/log/compare/0.4.25...0.4.26
v0.4.25Compare Source
What's Changed
Full Changelog: https://github.com/rust-lang/log/compare/0.4.24...0.4.25
v0.4.24Compare Source
What's Changed
Full Changelog: https://github.com/rust-lang/log/compare/0.4.23...0.4.24
v0.4.23Compare Source
What's Changed
spdlog-rslink to README by @SpriteOvO in https://github.com/rust-lang/log/pull/639New Contributors
Full Changelog: https://github.com/rust-lang/log/compare/0.4.22...0.4.23
v0.4.22Compare Source
What's Changed
cologcrate by @chrivers in https://github.com/rust-lang/log/pull/621New Contributors
Full Changelog: https://github.com/rust-lang/log/compare/0.4.21...0.4.22
v0.4.21Compare Source
What's Changed
STATIC_MAX_LEVELby @ptosi in https://github.com/rust-lang/log/pull/594ok_orin favor ofOption::ok_orby @AngelicosPhosphoros in https://github.com/rust-lang/log/pull/607Acquireordering for initialization check by @AngelicosPhosphoros in https://github.com/rust-lang/log/pull/610New Contributors
ramosbugs/oauth2-rs (oauth2)
v5.0.0Compare Source
Refer to the Upgrade Guide for tips on how to upgrade from 4.x.
Changes since 5.0.0-rc.1
Bug Fixes
9a2b746)Full Changelog: https://github.com/ramosbugs/oauth2-rs/compare/5.0.0-rc.1...5.0.0
Summary of changes since 4.4.2
Breaking Changes
TokenResponsegeneric with associated type (30ced32)impl Futureinstead ofPin<Box<dyn Future>>to fixSend/Syncbounds (6e583bd)httpto 1.0 andreqwestto 0.12 (408ecab)85ea470)oauth2::HttpClientErrorand flatten exports (e.g.,oauth2::reqwestinstead ofoauth2::reqwest::reqwest) (4391eed)Errortype and usethiserror'sFromimpl by @MarijnS95 (#238)openidconnectcrate) (576f809)Displayoutput ofRequestTokenError::ServerResponse(96c6f9b)Clientendpoints statically via typestates (1d1f4d1)devicecodeandrevocationmodules private (9d8f11a)reqwest-blockingfeature (da7d1c5)4d55c26)AsyncHttpClientandSyncHttpClienttraits (23b952b)New Features
SecretType::into_secret(#272)timing-resistant-secret-traitsfeature for PartialEq/Hash by @kate-shine (https://github.com/ramosbugs/oauth2-rs/pull/232)Eqfor types that already derivePartialEq(b19ad89)Frominstead ofIntofor newtypes (d9402c4)Displaytrait for URL types (8bd0ff1)Bug Fixes
9a2b746)Other Changes
base64to 0.21 (db0ea44)chronoto 0.4.31 (7b667fc)openidconnectcrate in README (7b667fc)spawn_blockingto docs (1fc8188)curlasoauth2::curlandureqasoauth2::ureqwhen the corresponding Cargo features are enabled (aff7471)map_err()conversions with aFromcall via theTryoperator by @MarijnS95 (#239)csrf_stateby @ikehz (#245)prepare_request()methods infallible (8ef74ac)d675e81)a8b5cf8)92c491a)Full Changelog: https://github.com/ramosbugs/oauth2-rs/compare/4.4.2...5.0.0
v4.4.2Compare Source
Bug Fixes
wasmbindfeature to fix panic in WASM environments (#230)Other Changes
ramosbugs/openidconnect-rs (openidconnect)
v4.0.1Compare Source
Bug Fixes
Full Changelog: https://github.com/ramosbugs/openidconnect-rs/compare/4.0.0...4.0.1
v4.0.0Compare Source
Refer to the Upgrade Guide for tips on how to upgrade from 3.x.
Changes since 4.0.0-rc.1
Bug Fixes
#[skip_serializing_none](025889e)5632960)Other Changes
oauth2to 5.0.0 (dbb3f5c)Full Changelog: https://github.com/ramosbugs/openidconnect-rs/compare/4.0.0-rc.1...4.0.0
Summary of changes since 3.5.0
Breaking Changes
oauth2to5.0.0-alpha.4(19043b1)1d97e0e)5f039ee)oauth2to5.0.0-alpha.3along withhttp,reqwest, andbase64(7efc894)nightlyfeature (c67ffe9)oauth2to5.0.0-alpha.2(fd40498)jwk-algCargo feature (73ee82f)New Features
From<>for unwrapping newtypesEqfor types that already derivePartialEq(898ead2)Bug Fixes
#[skip_serializing_none](025889e)5632960)CoreJsonCurveType(#182)impl Futureinstead ofPin<Box<dyn Future>>(#158)oauth2(1c9f770)1131afa)Other Changes
oauth2to 5.0.0 (dbb3f5c)6852dcc)29aad1c)fcada17)fd077bd)JsonCurveTypetrait (ffde16a)e87580c)38baa1a)Displayoutput ofClientRegistrationError(3a801c9)9aadf67)Cargo.toml(06e9d6cFull Changelog: https://github.com/ramosbugs/openidconnect-rs/compare/3.5.0...4.0.0
v3.5.0Compare Source
New Features
UserInfoRequest::set_response_typeby @FabianLars in https://github.com/ramosbugs/openidconnect-rs/pull/146Bug Fixes
#[non_exhaustive]fromLogoutProviderMetadata(#150)Full Changelog: https://github.com/ramosbugs/openidconnect-rs/compare/3.4.0...3.5.0
v3.4.0Compare Source
New Features
algfield into account during key selection (#131). This change is gated by a non-defaultjwk-algfeature flag, which was added to avoid introducing breaking changes. During a future major version, this feature flag will be removed and the functionality will be included unconditionally.Full Changelog: https://github.com/ramosbugs/openidconnect-rs/compare/3.3.1...3.4.0
v3.3.1Compare Source
Bug Fixes
wasmbindfeature to fix panic in WASM environments (#127)rust-pretty-assertions/rust-pretty-assertions (pretty_assertions)
v1.4.1Compare Source
Fixed
Internal
yansiversion to1.x. Thanks to @SergioBenitez for the update, and maintaining this library! (#121)rust-random/rand (rand_core)
v0.9.2Compare Source
Deprecated
rand::rngs::mockmodule andStepRnggenerator (#1634)Additions
WeightedIndex<usize>(de)serialization (#1646)v0.9.1Compare Source
Security and unsafe
zerocopydependency fromrand(#1579)Fixes
simd_supportfor recent nightly rust (#1586)Changes
fn rand::seq::index::sample_weightedandfn IndexedRandom::choose_multiple_weightedto return fewer thanamountresults (#1623), reverting an undocumented change (#1382) to the previous release.Additions
rand::distr::Alphabeticdistribution. (#1587)rand_core(#1604)v0.9.0Compare Source
Security and unsafe
ReseedingRngandThreadRng. Instead, it is recommended to callThreadRng::reseedon fork. (#1379)zerocopyto replace someunsafecode (#1349, #1393, #1446, #1502)Dependencies
--ignore-rust-versionrand_corev0.9.0 (#1558)Features
stdfeature withoutgetrandomorrand_chacha(#1354)small_rngby default (#1455)rand_chacha; usestd_rnginstead. (#1473)serde1toserde(#1477)getrandomtoos_rng(#1537)thread_rng(#1547)API changes: rand_core traits
RngCore::read_adapterimplementingstd::io::Read(#1267)CryptoBlockRng: BlockRngCore; maketrait CryptoRng: RngCore(#1273)TryRngCore,TryCryptoRng(#1424, #1499)fn SeedableRng::from_rng->try_from_rngand add infallible variantfn from_rng(#1424)fn SeedableRng::from_entropy->from_os_rngand add fallible variantfn try_from_os_rng(#1424)CloneandAsRefto associated typeSeedableRng::Seed(#1491)API changes: Rng trait and top-level fns
rand::thread_rng()torand::rng()and remove from the prelude (#1506)rand::random()from the prelude (#1506)random_iter,random_range,random_bool,random_ratio,fill(#1488)Rng::gen_iterasrandom_iter(#1305, #1500)Rng::gentorandomto avoid conflict with the newgenkeyword in Rust 2024 (#1438)Rng::gen_rangetorandom_range,gen_booltorandom_bool,gen_ratiotorandom_ratio(#1505)#[track_caller](#1442, #1447)API changes: RNGs
<SmallRng as SeedableRng>::Seedsize to 256 bits (#1455)rng) ofReseedingRng::new(#1533)API changes: Sequences
SliceRandomintoIndexedRandom,IndexedMutRandom,SliceRandom(#1382)IndexedRandom::choose_multiple_array,index::sample_array(#1453, #1469)API changes: Distributions: renames
rand::distributionstorand::distr(#1470)StandardtoStandardUniform(#1526)distr::Slice->distr::slice::Choose,distr::EmptySlice->distr::slice::Empty(#1548)distr::DistString->distr::SampleString(#1548)distr::DistIter->distr::Iter,distr::DistMap->distr::Map(#1548)API changes: Distributions
Sizedbound onDistribution<T> for &D(#1278)Distribution<Option<T>>forStandardUniform(#1526)StandardUniformsupport allNonZero*types (#1332){Uniform, UniformSampler}::{new, new_inclusive}return aResult(instead of potentially panicking) (#1229)UniformimplementsTryFrominstead ofFromfor ranges (#1229)UniformUsize(#1487)isizeandusizevalues withStandardUniform,Uniform(except viaUniformUsize) andFilland usage as aWeightedAliasIndexweight (#1487)DistStringfor distributionsSlice<char>andUniform<char>(#1315)Slice::num_choices(#1402)p()for distributionBernoullito access probability (#1481)API changes: Weighted distributions
pubmodulerand::distr::weighted, movingWeightedIndexthere (#1548)weighted::Weight, allowingWeightedIndexto trap overflow (#1353)weight, weights, total_weightto distributionWeightedIndex(#1420)WeightedErrortoweighted::Error, revising variants (#1382) and mark as#[non_exhaustive](#1480)API changes: SIMD
std::simd, expand SIMD & docs (#1239)Reproducibility-breaking changes
ReseedingRng::reseeddiscard remaining data from the last block generated (#1379)SmallRng::seed_from_u64implementation (#1203)UniformFloat::newsamples andUniformFloat::sample_singleto yieldhigh(#1462)Slice(#1469)Uniformforusizeportable viaUniformUsize(#1487)IndexdRandom::choose_multiple_weightedfor very small seeds and optimize for large input length / low memory (#1530)Reproducibility-breaking optimisations
sample_floyd, affecting output ofrand::seq::index::sampleandrand::seq::SliceRandom::choose_multiple(#1277)IteratorRandom::chooseandchoose_stable(#1268)SliceRandom::shuffleandpartial_shuffle(#1272)Uniform: use Canon's method (single sampling) / Lemire's method (distribution sampling) for faster sampling (breaks value stability; #1287)sample_single_inclusivefor floats (+~20% perf) (#1289)Other optimisations
SmallRnginitialization performance (#1482)Other
Cargo.lock.msrvfile (#1275)rustfmtand enforce (#1448)benchescrate (#1329, #1439) and migrate to Criterion (#1490)Documentation
ThreadRngrelated docs (#1257)--generate-link-to-definitionfeature (#1327)doc_auto_cfg(#1411, #1450)oknozor/sealed-test (sealed_test)
v1.1.0What's Changed
New Contributors
Full Changelog: https://github.com/oknozor/sealed-test/commits/1.1.0
serde-rs/json (serde_json)
v1.0.145Compare Source
v1.0.144Compare Source
v1.0.143Compare Source
v1.0.142Compare Source
v1.0.141Compare Source
v1.0.140Compare Source
v1.0.139Compare Source
v1.0.138Compare Source
v1.0.137Compare Source
v1.0.136Compare Source
v1.0.135Compare Source
v1.0.134Compare Source
RawValueassociated constants for literalnull,true,false(#1221, thanks @bheylin)v1.0.133Compare Source
v1.0.132Compare Source
v1.0.131Compare Source
Map<String, Value>and&Map<String, Value>(#1135, thanks @swlynch99)v1.0.130Compare Source
Numberfrom i128 and u128 (#1141, thanks @druide)v1.0.129Compare Source
serde_json::Map::sort_keysandserde_json::Value::sort_all_objects(#1199)v1.0.128Compare Source
v1.0.127Compare Source
v1.0.126Compare Source
v1.0.125Compare Source
v1.0.124Compare Source
v1.0.123Compare Source
v1.0.122Compare Source
json!in no-std crates (#1166)v1.0.121Compare Source
v1.0.120Compare Source
indexmapdependency (#1152, thanks @cforycki)v1.0.119Compare Source
serde_json::Map::shift_insert(#1149, thanks @joshka)v1.0.118Compare Source
v1.0.117Compare Source
v1.0.116Compare Source
v1.0.115Compare Source
v1.0.114Compare Source
v1.0.113Compare Source
swap_removeandshift_removemethods on Map (#1109)v1.0.112Compare Source
v1.0.111Compare Source
v1.0.110Compare Source
v1.0.109Compare Source
v1.0.108Compare Source
borntyping/rust-simple_logger (simple_logger)
v5.1.0Compare Source
init_with_env(closes #96).Full Changelog: https://github.com/borntyping/rust-simple_logger/compare/v5.0.0...v5.1.0
v5.0.0Compare Source
What's Changed
stderrandcolorsfeatures, logs will be printed in colour even when STDOUT is redirected.colorsfeature, not thecoloreddependency.set_up_color_terminalfrom the public API. This has been called byinit()for a while now.New Contributors
Full Changelog: https://github.com/borntyping/rust-simple_logger/compare/v4.3.3...v5.0.0
v4.3.3Compare Source
What's Changed
v4.3.1).module_levelsis always sorted, so thatenabled()correctly selects the most specific target. Fixes #90, thanks @nikarh.Full Changelog: https://github.com/borntyping/rust-simple_logger/compare/v4.3.0...v4.3.2
v4.3.0Compare Source
What's Changed
windows-sysfrom 0.42 to 0.48 by @iamjpotts in https://github.com/borntyping/rust-simple_logger/pull/83env_loggerreference from docs by @igortg in https://github.com/borntyping/rust-simple_logger/pull/87max_levelmethod, to enable users to own a valid configured instance before callingset_boxed_loggerby @twiby in https://github.com/borntyping/rust-simple_logger/pull/88wrap.rsexample showing how you might wrap the logger with your own.New Contributors
Full Changelog: https://github.com/borntyping/rust-simple_logger/compare/v4.2.0...v4.3.0
launchbadge/sqlx (sqlx)
v0.8.6Compare Source
9 pull requests were merged this release cycle.
Added
Changed
tempfiledependency [[@paolobarbolini]]Fixed
attrubutetypo in doc [[@kujeger]]v0.8.5Hotfix release to address two new issues:
sqlx-cli@0.8.4broke.envdefault resolution mechanismsqlx@0.8.4broke test fixture setupThe
0.8.4release will be yanked as of publishing this one.Added
sqlx-clinow accepts--no-dotenvin subcommand arguments.sqlx-clito CI.#[sqlx::test]twice in CI to cover cleanup.Fixed
sqlx-clicorrectly reads.envfiles by default again.#[sqlx::test].v0.8.450 pull requests were merged this release cycle.
Added
push_valuesis passed an empty set of tuples [[@chanmaoganda]]transaction_depththroughget_transaction_depth()method [[@mpyw]]Connection::is_in_transactionin [#3765]begin_withmethods to support database-specific transaction options [[@bonsairobo]]Changed
#[track_caller]toRow::get()[[@karambarakat]]futures-core/futures-utilAPIs withstdvariants [[@paolobarbolini]]Fixed
SQLITE_OPEN_URIon in-memory sqlite [[@LecrisUT]]PgCopyIn[[@joeydewaal]]CARGO_MANIFEST_DIR[[@joeydewaal]]limit: 0for allExecutemessagesCertificateInput::frominfer any PEM-encoded documentPGSSLKEYnot being parsed correctly when containing a PEM-encoded private key.PgConnectOptionsPGHOSTADDRnow can be used to overridePGHOST.v0.8.3Compare Source
41 pull requests were merged this release cycle.
Added
Uuidanduuid::fmt::Hyphenated[[@abonander]]Changed
.pgpassfile warning to a debug message. [[@denschub]]PgListener::try_recv[[@swlynch99]]UNION ALLinstead ofUNIONin nullable check [[@Suficio]]Fixed
no-transactionflag in down migrations [[@manifest]]sqlformat[[@tbar4]]query_as[[@xuehaonan27]]INTERVAL[][[@Ddystopia]]EXPLAINin nullability check for QuestDB [[@Suficio]]v0.8.2Compare Source
10 pull requests were merged this release cycle.
This release addresses a few regressions that have occurred, and refines SQLx's MSRV policy (see the FAQ).
Added
Changed
Cargo.tomlfiles in examples [[@carschandler]]Fixed
#[sqlx(no_pg_array)]being forbidden on#[derive(Type)]structs.PgListener,PgStream::recv()[[@abonander]]unknown message: "\\0"errorv0.8.1Compare Source
16 pull requests were merged this release cycle.
This release contains a fix for RUSTSEC-2024-0363.
Postgres users are advised to upgrade ASAP as a possible exploit has been demonstrated:
#3440 (comment)
MySQL and SQLite do not appear to be exploitable, but upgrading is recommended nonetheless.
Added
MySqlConnectOptions::no_engine_substitution()[[@kolinfluence]]MySqlConnectOptions::no_engine_subsitution()(oops) in favor of the correctly spelled version.Changed
spec_errormodule [[@abonander]]Use at your own risk.
libsqlite3-sys=0.30.1to support sqlite 3.46 [[@CommanderStorm]]ring(the existing implementation),and
aws-lc-rswhich has optional FIPS certification.runtime-tokio-rustls,runtime-async-std-rustls,tls-rustls)enable the
ringprovider of RusTLS to match the existing behavior so this should not be a breaking change.tls-rustls-aws-lc-rsfeature to use theaws-lc-rsprovider.runtime-tokio-rustlsorruntime-async-std-rustls,this will necessitate switching to the appropriate non-legacy runtime feature:
runtime-tokioorruntime-async-stdFixed
sqlx::Type[[@alu]]node12inSQLxaction [[@hamirmahal]]v0.18.1to avoid yankedv0.14.3[[@CommanderStorm]]v0.8.0Compare Source
70 pull requests were merged this release cycle.
#2697 was merged the same day as release 0.7.4 and so was missed by the automatic CHANGELOG generation.
Breaking
#[sqlx::test]usages are applied in the correct order now.MigrateError.-- no-transactionto the beginning.Migrationi64as intermediate when decoding [[@abonander]]#[derive(sqlx::Type)]in Postgres [[@abonander]]#[sqlx(no_pg_array)]where conflicts occur.PgTypeInfo::with_name()infers types that start with_to be arrays of the un-prefixed type. Wrap type names in quotes to bypass this behavior.FromRow, returnError::ColumnDecodeforTryFromerrors [[@abonander]]#[sqlx(try_from = "T")]now returnError::ColumnDecodeinstead ofError::ColumnNotFound.#[sqlx(default)]on an individual field or the struct itself would have previously suppressed the error.This doesn't seem like good behavior as it could result in some potentially very difficult bugs.
Fromand apply the default explicitly.#[sqlx(rename)]and#[sqlx(rename_all)]to match the expected behavior (renamewins).ConnectOptions::to_url_lossy()to match what parsing expects.Added
MySqlTime, auditmysql::typesfor panics [[@abonander]]NonZero*scalar types [[@AlphaKeks]]Changed
Sendtrait bound from argument binding [[@bobozaur]]libsqlite3-sysare not considered breaking changes as per our semver guarantees.MySqlConnectionto reduce sizes of futures [[@stepantubanov]]sqlx migrate add ...[[@CommanderStorm]]Fixed
ConnectionHandleRawtype [[@abonander]]docker composeinstead ofdocker-compose[[@abonander]]pathownership problems when usingsqlx_macros_unstable[[@lily-mosquitoes]]sqlx_postgres::any[[@Zarathustra2]]migrateerror message. (#3275) [[@nk9]]persistentquery setting when preparing queries with theAnydriver [[@etorreborre]]select_input_type!()being unhygenic [[@CommanderStorm]]MorCNotice fields are not UTF-8 [[@YgorSouza]]json-feature should activatesqlx-postgres?/jsonas well [[@CommanderStorm]]clockandstdfeatures ofworkspace.dependencies.chrono.v0.7.4Compare Source
38 pull requests were merged this release cycle.
This is officially the last release of the 0.7.x release cycle.
As of this release, development of 0.8.0 has begun on
mainand only high-priority bugfixes may be backported.Added
to_url_lossyto connect options [[@lily-mosquitoes]]query!for cargo-free systems [[@kshramt]]raw_sqlAPI [[@abonander]]prepared statement interfaces
query*()andquery!().query*()functions.execute_many()andfetch_many()on interfaces that use prepared statements.interface is the only way to execute SQL. All other database flavors forbid multiple statements in
one prepared statement string as an extra defense against SQL injection.
raw_sqlAPI retains this functionality because it explicitly does not use prepared statements.Raw or text-mode query interfaces generally allow multiple statements in one query string, and this is
supported by all current databases. Due to their nature, however, one cannot use bind parameters with them.
Changed
create_newinstead ofatomic-file-write[[@mattfbacon]]PgConnectOptions[[@Fyko]]#[sqlx::test][[@ciffelia]]Fixed
sqlx::migrate::Migrator.migrate!().v0.7.3Compare Source
38 pull requests were merged this release cycle.
Added
fixtures_pathin sqlx::test args [[@ripa1995]]fn PgConnectOptions::get_host(&self)[[@boris-lok]]FromRowfor the unit type [[@nanoqsh]]MySqlConnectOptions::get_database()[[@shiftrightonce]]Textadapter [[@abonander]]Changed
BOOLEANand the query macros [[@abonander]]NUMERICsupport [[@abonander]]libsqlite3-systo 0.27.0libsqlite3-sysis considered semver-exempt;see the release notes for 0.7.0 below for details.
Fixed
rust_decimal::Decimalfor high-precision values [[@abonander]]sqlx migrate addhelp text [[@cryeprecision]]try_stream!()[[@abonander]]cargo build[[@nyurik]]AtomicUsizefor thread IDs [[@abonander]]v0.7.2Compare Source
23 pull requests were merged this release cycle.
Added
FromRowderive [[@95ulisse]]Type,Decode, andEncodeforBox<str>andBox<[u8]>[[@grant0417]]Changed
remove_dir_allcrate fromsqlx-cli, fixes RUSTSEC-2023-0018 [[@aldur]]Fixed
min_connections[[@hakoerber]]v0.7.1Compare Source
This release mainly addresses issues reported with the 0.7.0 release.
16 pull requests were merged this release cycle.
Added
PgHasArrayTypewith#[derive(sqlx::Type)][[@abonander]]#[derive(sqlx::Type)]with#[sqlx(transparent)]regarding
PgHasArrayTypenot being implemented, add#[sqlx(no_pg_array)]to fix.Changed
Fixed
CloneforPoolOptionsmanually (#2548) [[@alilleybrinker]]tls-native-tlsin the documentation. [[@denschub]]v0.7.0Compare Source
At least 70 pull requests were merged this release cycle! (The exact count is muddied with pull requests for alpha
releases and such.) And we gained 43 new contributors! Thank you to everyone who helped make this release a reality.
Breaking
Many revisions were made to query analysis in the SQLite driver; these are all potentially breaking changes
as they can change the output of
sqlx::query!()et al. We'd like to thank [[@tyrelr]] for their numerous PRs tothis area.
The MSSQL driver has been removed as it was not nearly at the same maturity level as the other drivers.
As previously announced, we have plans to introduce a fully featured replacement as a premium offering,
alongside drivers for other proprietary databases, with the goal to support full-time development on SQLx.
If interested, please email your inquiry to sqlx@launchbadge.com.
The offline mode for the queries has been changed to use a separate file per
query!()invocation,which is intended to reduce the number of conflicts when merging branches in a project that both modified queries.
This means that CLI flag
--mergedis no longer supported. See [#2363] for details and make sure that yoursqlx-cliversion is in sync with thesqlxversion in your project.The type ascription override syntax for the query macros has been deprecated,
as parse support for it has been removed in
syn 2.0, which we'll be upgrading to in the next breaking release.This can be replaced with type overrides using casting syntax (
as).See [#2483] for details.
mssqlfeature and associated database driver has been deleted from the source tree. It will return as part of our planned SQLx Pro offering as a from-scratch rewrite with extra features (such as TLS) and type integrations that were previously missing.runtime-actix-*features have been deleted. They were previously changed to be aliases of theirruntime-tokio-*counterparts for backwards compatibility reasons, but their continued existence is misleading as SQLx has no special knowledge of Actix anymore.runtime-actix-*feature with itsruntime-tokio-*equivalent.git2feature has been removed. This was a requested integration from a while ago that over time made less and less sense to be part of SQLx itself. We have to be careful with the crates we add to our public API as each one introduces yet another semver hazard. The expected replacement is to make#[derive(sqlx::Type)]useful enough that users can write wrapper types for whatever they want to use without SQLx needing to be specifically aware of it.Executorimpls forTransactionandPoolConnectionhave been deleted because they cannot exist in the new crate architecture without rewriting theExecutortrait entirely.impl Executoris expected, as they both dereference to the inner connection type which will still implement it:&mut transaction->&mut *transaction&mut connection->&mut *connectionthe driver crates cannot provide their own impls due to the orphan rule.
This will mean another major release of SQLx but ideally most API usage will not need to change significantly, if at all.
Migratorare now#[doc(hidden)]and semver-exempt; they weren't meant to be public.offlinefeature has been removed from thesqlxfacade crate and is enabled unconditionally as most users are expected to have enabled it anyway and disabling it doesn't seem to appreciably affect compile times.decimalfeature has been renamed torust_decimalto match the crate it actually provides integrations for.AnyDriverandAnyConnectionnow require eithersqlx::any::install_drivers()orsqlx::any::install_default_drivers()to be called at some point during the process' lifetime before the first connection is made, as the set of possible drivers is now determined at runtime. This was determined to be the least painful way to provide knowledge of database drivers toAnywithout them being hardcoded.AnyEncodetrait has been removed.libsqlite3-systo be semver-exempt,and we reserve the right to upgrade it as necessary. If you are using
libsqlite3-sysdirectly or a crate thatlinks it such as
rusqlite, you should pin the versions of both crates to avoid breakages fromcargo update:time: Assume UTC when decoding a DATETIME column in sqlite [[@nstinus]]OffsetDateTimeto be the first type used when deserializing atimestamptype.Added
try_fromwhen derivingFromRow[[@95ulisse]]PRAGMA optimize;on close of a connection [[@miles170]]Connection::shrink_buffers,PoolConnection::close[[@abonander]]sqlx_macros_unstablein config.toml [[@df51d]]AsMutfor advisory lock types (#2520) [[@alilleybrinker]]Changed
tracing[[@CosmicHorrorDev]]let elsestatements in favor of macro [[@OverHash]]dirswithhome&etcetera[[@utkarshgupta137]]ConnectOptionstypes implFromStr[[@abonander]]Fixed
search_path[[@95ulisse]]sqlx::test[[@kenkoooo]]try_acquire[[@abonander]]tracked_path[[@df51d]]PrepareOkfails to decode [[@stepantubanov]]dtolnay/thiserror (thiserror)
v2.0.17Compare Source
v2.0.16Compare Source
v2.0.15Compare Source
Error::provideAPI becoming unavailable from a future new compiler lint (#427)v2.0.14Compare Source
v2.0.13Compare Source
v2.0.12Compare Source
v2.0.11Compare Source
v2.0.10Compare Source
v2.0.9Compare Source
missing_inline_in_public_itemsclippy restriction being triggered in macro-generated code (#404)v2.0.8Compare Source
derive(Error)call sites (#399)v2.0.7Compare Source
v2.0.6Compare Source
v2.0.5Compare Source
v2.0.4Compare Source
Fromimpls (#391, thanks @matt-phylum)v2.0.3Compare Source
v2.0.2Compare Source
v2.0.1Compare Source
v2.0.0Compare Source
Breaking changes
Referencing keyword-named fields by a raw identifier like
{r#type}inside a format string is no longer accepted; simply use the unraw name like{type}(#347)This aligns thiserror with the standard library's formatting macros, which gained support for implicit argument capture later than the release of this feature in thiserror 1.x.
Trait bounds are no longer inferred on fields whose value is shadowed by an explicit named argument in a format message (#345)
Tuple structs and tuple variants can no longer use numerical
{0}{1}access at the same time as supplying extra positional arguments for a format message, as this makes it ambiguous whether the number refers to a tuple field vs a different positional arg (#354)Code containing invocations of thiserror's
derive(Error)must now have a direct dependency on thethiserrorcrate regardless of the error data structure's contents (#368, #369, #370, #372)Features
Support disabling thiserror's standard library dependency by disabling the default "std" Cargo feature:
thiserror = { version = "2", default-features = false }(#373)Support using
r#sourceas field name to opt out of a field named "source" being treated as an error'sError::source()(#350)Infinite recursion in a generated Display impl now produces an
unconditional_recursionwarning (#359)A new attribute
#[error(fmt = path::to::myfmt)]can be used to write formatting logic for an enum variant out-of-line (#367)Enums with an enum-level format message are now able to have individual variants that are
transparentto supersede the enum-level message (#366)v1.0.69Compare Source
v1.0.68Compare Source
v1.0.67Compare Source
v1.0.66Compare Source
v1.0.65Compare Source
v1.0.64Compare Source
v1.0.63Compare Source
v1.0.62Compare Source
#[error("…", …)]attribute (#309)v1.0.61Compare Source
core::fmtandcore::panicto facilitateerror_in_coresupport (#299, thanks @jordens)v1.0.60Compare Source
v1.0.59Compare Source
debug-fmt-detailoption (#297)v1.0.58Compare Source
v1.0.57Compare Source
Displayimpl for error message which do not contain any interpolated value (#286, thanks @nyurik)v1.0.56Compare Source
v1.0.55Compare Source
v1.0.54Compare Source
v1.0.53Compare Source
v1.0.52Compare Source
v1.0.51Compare Source
Errorimpl (#266)tokio-rs/tokio (tokio)
v1.48.0: Tokio v1.48.0Compare Source
1.48.0 (October 14th, 2025)
The MSRV is increased to 1.71.
Added
File::max_buf_size(#7594)ChainofAsyncReadExt::chain(#7599)SocketAddr::as_abstract_name(#7491)TcpStream::quickackandTcpStream::set_quickack(#7490)AsRef<Self>forTcpStreamandUnixStream(#7573)LocalKey::try_get(#7666)Ordfortask::Id(#7530)Changed
max_buf_sizewhen cloning aFile(#7593)clippy::unwrap_in_resultin#[tokio::main](#7651)PollEventednoise from Debug formats (#7675)Command::spawn_withto useFnOnce(#7511)SetOnce(#7554)UnsafeCell::get_mutinMutex::get_mutandRwLock::get_mut(#7569)Timeout<T>::poll(#7535)Fixed
join!andtry_join!(#7638)wake_by_ref()even if already woken (#7622)broadcast::Senderinbroadcast::Sender::new()(#7629)RwLock::try_*methods (#7587)Unstable
--cfgflags fortaskdumpandio_uring(#7655, #7621)io_uringinfs::write(#7567)io_uringwithFile::open()(#7617)io_uringwithOpenOptions(#7321)localruntime flavor (#7375, #7597)Documented
AsyncRead::poll_read(#7580)AsyncFdreadiness guards (#7583)UCred::pid()on Cygwin (#7611)set_reuseport()andreuseport()(#7628)SO_REUSEADDRis only set on Unix (#7533)Handle::block_on(#7665)Builder::global_queue_interval()(#7605)tokio::sync::watch::Receiver(#7584)SetOnce::wait(#7506)parking_lotfeature flag (#7663)UnboundedSender::send(#7661)sync::watch(#7601)spawn_localmethods (#7669)poll_proceed(#7586)v1.47.2Compare Source
v1.47.1: Tokio v1.47.1Compare Source
1.47.1 (August 1st, 2025)
Fixed
asyncio.EventinSetOncedocs (#7485)v1.47.0: Tokio v1.47.0Compare Source
1.47.0 (July 25th, 2025)
This release adds
poll_proceedandcooperativeto thecoopmodule forcooperative scheduling, adds
SetOnceto thesyncmodule which providessimilar functionality to [
std::sync::OnceLock], and adds a new methodsync::Notify::notified_owned()which returns anOwnedNotifiedwithouta lifetime parameter.
Added
cooperativeandpoll_proceed(#7405)SetOnce(#7418)sync::Notify::notified_owned()(#7465)Changed
AtomicWaker::wakeperformance (#7450)Documented
Readiness<'_>(#7415)v1.46.1: Tokio v1.46.1Compare Source
1.46.1 (July 4th, 2025)
This release fixes incorrect spawn locations in runtime task hooks for tasks spawned using
tokio::spawnrather thanRuntime::spawn. This issue only effected the spawn location inTaskMeta::spawned_at, and did not effect task locations in Tracing events.Unstable
TaskMeta::spawn_locationtracking where a task was spawned (#7440)v1.46.0: Tokio v1.46.0Compare Source
1.46.0 (July 2nd, 2025)
Fixed
TcpStream::shutdownincorrectly returning an error on macOS (#7290)Added
mpsc::OwnedPermit::{same_channel, same_channel_as_sender}methods (#7389)biasedoption forjoin!andtry_join!, similar toselect!(#7307)pope::OpenOptions::read_writeon Android (#7426)Cloneimplementation fornet::unix::SocketAddr(#7422)Changed
queue::Local<T>(#7340)LocalSet::{poll,drop}(#7372)Unstable
TaskMeta::spawn_locationtracking where a task was spawned (#7417)LocalOptionsparameter toruntime::Builder::build_local(#7346)Documented
start_seekis not used (#7366)AsyncWriteExt::flush(#7364)recv_buffer_sizemethod (#7336)RawFdinTcpSocketdocs (#7416)AsRawFddoc link to current Rust stdlib location (#7429)on_*_task_pollis unstable (#7311)time::advance(#7394)v1.45.1: Tokio v1.45.1Compare Source
1.45.1 (May 24th, 2025)
This fixes a regression on the wasm32-unknown-unknown target, where code that previously did not panic due to calls to
Instant::now()started failing. This is due to the stabilization of the first time-based metric.Fixed
v1.45.0: Tokio v1.45.0Compare Source
Added
worker_total_busy_duration,worker_park_count, andworker_unpark_count(#6899, #7276)Command::spawn_with(#7249)Changed
Unpinfor some trait impls (#7204)runtime::Handleas unwind safe (#7230)Unstable
v1.44.2: Tokio v1.44.2Compare Source
This release fixes a soundness issue in the broadcast channel. The channel
accepts values that are
Sendbut!Sync. Previously, the channel calledclone()on these values without synchronizing. This release fixes the channelby synchronizing calls to
.clone()(Thanks Austin Bonander for finding andreporting the issue).
Fixed
clone()call in broadcast channel (#7232)v1.44.1: Tokio v1.44.1Compare Source
1.44.1 (March 13th, 2025)
Fixed
block_in_placecontext (#7216)v1.44.0: Tokio v1.44.0Compare Source
1.44.0 (March 7th, 2025)
This release changes the
from_stdmethod on sockets to panic if a blocking socket is provided. We determined this change is not a breaking change as Tokio is not intended to operate using blocking sockets. Doing so results in runtime hangs and should be considered a bug. Accidentally passing a blocking socket to Tokio is one of the most common user mistakes. If this change causes an issue for you, please comment on #7172.Added
task::coopmodule (#7116)Command::get_kill_on_drop()(#7086)broadcast::Sender::closed(#6685, #7090)broadcast::WeakSender(#7100)oneshot::Receiver::is_empty()(#7153)oneshot::Receiver::is_terminated()(#7152)Fixed
Fileshould not start a background read (#7139)start_killon exited child should not fail (#7160)CTRL_CLOSE,CTRL_LOGOFF,CTRL_SHUTDOWNon windows (#7122)Changes
select!budget-aware (#7164)from_std(#7166)Changes to unstable APIs
Documented
select!alternatives (#7110)send_to(#7146)Childstdout (#7141)Child::killbehavior (#7162)ChildStdinstruct doc comment (#7192)worker_threadsinstead ofcore_threads(#7186)v1.43.3Compare Source
v1.43.2: Tokio v1.43.2Compare Source
1.43.2 (August 1st, 2025)
Fixed
v1.43.1Compare Source
v1.43.0: Tokio v1.43.0Compare Source
1.43.0 (Jan 8th, 2025)
Added
UdpSocket::peekmethods (#7068)Command::into_std()(#7014)SignalKind::infoon illumos (#6995)Fixed
set_lenbefore initializing vector inBlocking(#7054)clippy::needless_returnin#[tokio::main](#6874)Changes
unsync_load(#7073)Buf::put_bytesinRepeatread impl (#7055)Changes to unstable APIs
Documented
ReadBuf::uninitallows initialized buffers as well (#7053)TcpStream::try_write_vectoreddocs (#7067)LocalRuntimedoc links (#7074)watch::Receiver::wait_for(#7038)OnceCelldocs (#7047)v1.42.1: Tokio v1.42.1Compare Source
This release fixes a soundness issue in the broadcast channel. The channel accepts values that are
Sendbut!Sync. Previously, the channel calledclone()on these values without synchronizing. This release fixes the channel by synchronizing calls to.clone()(Thanks Austin Bonander for finding and reporting the issue).Fixed
clone()call in broadcast channel (#7232)v1.42.0: Tokio v1.42.0Compare Source
1.42.0 (Dec 3rd, 2024)
Added
AsyncFd::{try_io, try_io_mut}(#6967)Fixed
ptr->ref->ptrroundtrip in RegistrationSet (#6929)yield_nowinsideblock_in_place(#6999)Changes
Documented
tokio::net::unix::{pid_t, gid_t, uid_t}(#6791)Instantdocs (#6982)v1.41.1: Tokio v1.41.1Compare Source
1.41.1 (Nov 7th, 2024)
Fixed
netrequirement fornet::UdpSocketin docs (#6938)TcpStreaminternal comment (#6944)v1.41.0: Tokio v1.41.0Compare Source
1.41.0 (Oct 22th, 2024)
Added
global_queue_depth(#6854, #6918)SocketAddr(#6868)watch::Sender::sender_count(#6836)mpsc::Receiver::blocking_recv_many(#6867)Idapis (#6793, #6891)Added (unstable)
LocalRuntime(#6808)Changed
#[must_use]toNotified(#6828)watchcooperative (#6846)broadcast::Receivercooperative (#6870)cfg_fsforwasitarget (#6822)Fixed
Documented
OwnedFdwithAsyncFd(#6821)AsyncFdmethods (#6890)joinandtry_join(#6814, #6841)TcpSocket::set_nodelayandTcpSocket::nodelay(#6840)v1.40.0: Tokio v1.40.0Compare Source
1.40.0 (August 30th, 2024)
Added
util::SimplexStream(#6589)Command::process_group(#6731){TrySendError,SendTimeoutError}::into_inner(#6755)JoinSet::join_all(#6784)Added (unstable)
Builder::{on_task_spawn, on_task_terminate}(#6742)Changed
write_all_bufwhen possible (#6724)UnwindSafe(#6783)SleepandBatchSemaphoreinstrumentation explicit roots (#6727)NonZeroU64fortask::Id(#6733)JoinError(#6753)#[must_use]toJoinHandle::abort_handle(#6762)Documented
[build]section doesn't go in Cargo.toml (#6728)select!(#6774)v1.39.3: Tokio v1.39.3Compare Source
1.39.3 (August 17th, 2024)
This release fixes a regression where the unix socket api stopped accepting the abstract socket namespace. (#6772)
v1.39.2: Tokio v1.39.2Compare Source
1.39.2 (July 27th, 2024)
This release fixes a regression where the
select!macro stopped accepting expressions that make use of temporary lifetime extension. (#6722)v1.39.1: Tokio v1.39.1Compare Source
1.39.1 (July 23rd, 2024)
This release reverts "time: avoid traversing entries in the time wheel twice" because it contains a bug. (#6715)
v1.39.0: Tokio v1.39.0Compare Source
1.39.0 (July 23rd, 2024)
Added
AsyncSeekforEmpty(#6663)num_alive_tasks(#6619, #6667)Command::as_std_mut(#6608)watch::Sender::same_channel(#6637){Receiver,UnboundedReceiver}::{sender_strong_count,sender_weak_count}(#6661)Defaultforwatch::Sender(#6626)CloneforAbortHandle(#6621)consume_budget(#6622)Changed
ReadBuf::put_slice()(#6629)copy_bidirectionalandcopy(#6532)num_cpuswithavailable_parallelism(#6709)block_on(#6692)IntoFuturewithtimeout(#6666)IntoFuturewithjoin!andselect!(#6710)Fixed
Interval(#6612)Added (unstable)
unhandled_panicbehavior for#[tokio::main]and#[tokio::test](#6593)spawned_tasks_count(#6114)worker_park_unpark_count(#6696)Documented
tokio::io::stdoutdocumentation (#6674)join.rsandtry_join.rs(#6641)unhandled_panic(#6660)JoinSet::try_join_nextwhen all tasks are running (#6671)v1.38.2: Tokio v1.38.2Compare Source
This release fixes a soundness issue in the broadcast channel. The channel accepts values that are
Sendbut!Sync. Previously, the channel calledclone()on these values without synchronizing. This release fixes the channel by synchronizing calls to.clone()(Thanks Austin Bonander for finding and reporting the issue).Fixed
clone()call in broadcast channel (#7232)v1.38.1: Tokio v1.38.1Compare Source
1.38.1 (July 16th, 2024)
This release fixes the bug identified as (#6682), which caused timers not
to fire when they should.
Fixed
wake_upwhile holding all the locks of sharded time wheels (#6683)v1.38.0: Tokio v1.38.0Compare Source
This release marks the beginning of stabilization for runtime metrics. It
stabilizes
RuntimeMetrics::worker_count. Future releases will continue tostabilize more metrics.
Added
File::create_new(#6573)copy_bidirectional_with_sizes(#6500)AsyncBufReadforJoin(#6449)CloneforNamedPipeInfo(#6586)Notify::notify_last(#6520)mpsc::Receiver::{capacity,max_capacity}(#6511)splitmethod to the semaphore permit (#6472, #6478)tokio::task::join_set::Builder::spawn_blocking(#6578)Changed
#[tokio::test]append#[test]at the end of the attribute list (#6497)blocking_threadscount (#6551)RuntimeMetrics::worker_count(#6556)lifo_slotinblock_in_place(#6596)global_queue_intervalis zero (#6445)Semaphorefor task dumps (#6499)LocalKey::getwork with Clone types (#6433)true_whenfield inTimerShared(#6563)Fixed
Interval::poll_tick(#6487)is_emptyon mpsc block boundaries (#6603)Documented
stdindocumentation (#6581)ReadHalf::unsplit()documentation (#6498)select!(#6468)NamedPipeServerexample (#6590)SemaphorePermit,OwnedSemaphorePermit(#6477)Barrier::waitis not cancel safe (#6494)watch::Sender::{subscribe,closed}(#6490)spawn_blockingtasks (#6571)LocalSet::run_until(#6599)v1.37.0: Tokio v1.37.0Compare Source
1.37.0 (March 28th, 2024)
Added
set_max_buf_sizetotokio::fs::File(#6411)try_newandtry_with_interesttoAsyncFd(#6345)forget_permitsmethod to semaphore (#6331)is_closed,is_empty, andlento mpsc receivers (#6348)rwlock()method to ownedRwLockguards (#6418)Cloneforwatch::Sender(#6388)TaskLocalFuture::take_value(#6340)FromIteratorforJoinSet(#6300)Changed
io::splituse a mutex instead of a spinlock (#6403)Fixed
Documented
AsyncBufReadExt::fill_buf(#6431)AsyncReadExt's primitive read functions (#6337)Runtimeto#[tokio::main](#6366)enterexample deterministic (#6351)mpsc::Sender::downgradewith#[must_use](#6326)const_newbeforenew_with(#6392)Changed (unstable)
Idin taskdumps (#6328)unhandled_panicis enabled when not supported (#6410)v1.36.0: Tokio v1.36.0Compare Source
1.36.0 (February 2nd, 2024)
Added
tokio::io::Join(#6220)AsyncWriteforEmpty(#6235)UnixSocket(#6290)TcpSocket(#6311){Receiver,UnboundedReceiver}::poll_recv_many(#6236)Sender::{try_,}reserve_many(#6205)watch::Receiver::mark_unchanged(#6252)JoinSet::try_join_next(#6280)Changed
copycooperative (#6265)repeatandsinkcooperative (#6254)Documented
clear_readydocs (#6304)*Fdtraits onTcpSocketare unix-only (#6294)tokio::sync::Mutex(#6279)v1.35.1: Tokio v1.35.1Compare Source
1.35.1 (December 19, 2023)
This is a forward part of a change that was backported to 1.25.3.
Fixed
tokio::runtime::io::registration::async_io(#6221)v1.35.0: Tokio v1.35.0Compare Source
1.35.0 (December 8th, 2023)
Added
Changed
Sizedrequirements fromAsyncReadExt.read_buf(#6169)Runtimeunwind safe (#6189)Fixed
--cfg docsrswork without net feature (#6166)unsync_loadon miri (#6179)Documented
AsyncWriteExtexamples (#6149)LocalSet::run_until(#6147)v1.34.0: Tokio v1.34.0Compare Source
Fixed
clear_readinessafter io driver shutdown (#6067)take(#6080)broadcast::channellink (#6100)Changed
::corequalified imports instead of::stdinsidetokio::testmacro (#5973)Added
fs::read_dirto includeaix(#6075)mpsc::Receiver::recv_many(#6010)tower-rs/tower (tower)
v0.5.2: tower 0.5.2Compare Source
Added
BoxCloneSyncServicewhich is aClone + Send + SyncboxedService(#777)BoxCloneSyncServiceLayerwhich is aClone + Send + SyncboxedLayer(#802)v0.5.1: tower 0.5.1Compare Source
tower-layerdependency (#787)v0.5.0: tower 0.5.0Compare Source
Fixed
BoxServiceis nowSync(#702)Changed
ServiceExt::ready_andmethod andReadyAndfuture (#652)
retry::Policy::retrynow accepts&mut Reqand&mut Resinstead of the previous mutable versions. Thisincreases the flexibility of the retry policy. To update, update your method signature to include
mutfor both parameters. (#584)Reconnect::new(#755)Clonefor Change (#701)CloneforAsyncFilterLayer(#731)tower-rs/tower-http (tower-http)
v0.6.7Compare Source
Added
TimeoutLayer::with_status_code(status)to define the status code returnedwhen timeout is reached. (#599)
Deprecated
auth::require_authorizationis too basic for real-world. (#591)TimeoutLayer::new()should be replaced withTimeoutLayer::with_status_code(). (Previously wasStatusCode::REQUEST_TIMEOUT) (#599)Fixed
on_eosis now called even for successful responses. (#580)ServeDir: call fallback when filename is invalid (#586)decompressionwill not fail when body is empty (#618)New Contributors
Full Changelog: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.6...tower-http-0.6.7
v0.6.6Compare Source
Fixed
New Contributors
Full Changelog: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.5...tower-http-0.6.6
v0.6.5Compare Source
Added
append_trailing_slash()mode (#547)Fixed
vary: accept-encodingif already set (#572)New Contributors
Full Changelog: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.4...tower-http-0.6.5
v0.6.4: tower-http 0.6.4Compare Source
Added
ServiceExttrait for chaining layers onto an arbitrary http service justlike
ServiceBuilderExtallows forServiceBuilder(#563)Fixed
S::ErrorforServiceimpls ofRequestBodyTimeout<S>andResponseBodyTimeout<S>(#533)is_end_stream(#535)fs::ServeDir(#553)content-lenghtof 1 in response to range requests to emptyfiles (#556)
AsyncRequireAuthorization, use the original inner service after it isready, instead of using a clone (#561)
v0.6.3: tower-http 0.6.3Compare Source
This release was yanked because its definition of
ServiceExtwas quite unhelpful, in a way that's very unlikely that anybody would start depending on within the small timeframe before this was yanked, but that was technically breaking to change.v0.6.2Compare Source
Changed:
CompressionBody<B>now propagatesB's size hint in itshttp_body::Bodyimplementation, if compression is disabled (#531)
content-lengthto be included in an HTTP message with thisbody for those cases
New Contributors
Full Changelog: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.1...tower-http-0.6.2
v0.6.1: v0.6.1Compare Source
Fixed
New Contributors
v0.6.0: v0.6.0Compare Source
Changed:
bodymodule is disabled except forcatch-panic,decompression-*,fs, orlimitfeatures (BREAKING) (#477)tower0.5 (#503)Fixed
v0.5.2: v0.5.2Compare Source
Added:
vary: accept-encodingheader on compressed responses (#399)x-gzipas equivalent togzipinaccept-encodingrequest header (#467)Fixed
v0.5.1: v0.5.1Compare Source
zstdinServeFileResponseBodyandResponseFuture(#455)HttpMakeClassifierandGrpcMakeClassifier(#455)Fixed
ServeDirnow no longer redirects from/directoryto/directory/if
append_index_html_on_directoriesis disabled (#421)v0.5.0: v0.5.0Compare Source
Changed
Fixed
http-range-header to
0.4v0.4.4: v0.4.4Compare Source
v0.4.3: v0.4.3Compare Source
Fixed
v0.4.2: v0.4.2Compare Source
Added
DefaultforDecompressionBody(#370)Changed
Fixed
v0.4.1: v0.4.1Compare Source
Added
DefaultforMakeRequestUuid(#335)DefaultforServeFileSystemResponseBody(#336)Fixed
Accept-Encodingrequest header (#220)multiple_membersforGzipDecoder(#354)v0.4.0: v0.4.0Compare Source
Added
RequestDecompressionmiddleware (#282)DefaultforCompressionBody(#323)Changed
ServeDirandServeFile's error types are nowInfallibleand any IO errorswill be converted into responses. Use
try_callto generate error responses manually (BREAKING) (#283)ServeDir::fallbackandServeDir::not_found_servicenow requiresthe fallback service to use
Infallibleas its error type (BREAKING) (#283)Removed
RequireAuthorizationin favor ofValidateRequest(BREAKING) (#290)Fixed
ServeDir, convertio::ErrorKind::NotADirectoryto404 Not Found(#331)uuid-rs/uuid (uuid)
v1.19.0Compare Source
What's Changed
Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.18.1...v1.19.0
v1.18.1Compare Source
What's Changed
Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.18.0...v1.18.1
v1.18.0Compare Source
What's Changed
Timestampandstd::time::SystemTimeby @dcormier in https://github.com/uuid-rs/uuid/pull/835New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.17.0...v1.18.0
v1.17.0Compare Source
What's Changed
wasm32v1-noneSupport by @bushrat011899 in https://github.com/uuid-rs/uuid/pull/828New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.16.0...v1.17.0
v1.16.0Compare Source
What's Changed
Uuid::new_v8const by @tguichaoua in https://github.com/uuid-rs/uuid/pull/815New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.15.1...v1.16.0
v1.15.1Compare Source
What's Changed
Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.15.0...v1.15.1
v1.15.0Compare Source
What's Changed
Debugimplementation for NonNilUUid by @rick-de-water in https://github.com/uuid-rs/uuid/pull/808New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.14.0...v1.15.0
v1.14.0Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.13.2...v1.14.0
v1.13.2Compare Source
What's Changed
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.13.1...v1.13.2
v1.13.1Compare Source
What's Changed
wasm32withatomicsby @bushrat011899 in https://github.com/uuid-rs/uuid/pull/797New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.13.0...1.13.1
v1.13.0Compare Source
⚠️ Potential Breakage
This release updates our version of
getrandomto0.3andrandto0.9. It is a potentially breaking change for the following users:no-std users who enable the
rngfeatureuuidstill usesgetrandomby default on these platforms. Upgrade your version ofgetrandomand follow its new docs on configuring a custom backend.wasm32-unknown-unknownusers who enable therngfeature without thejsfeatureUpgrade your version of
getrandomand follow its new docs on configuring a backend.You'll also need to enable the
rng-getrandomorrng-randfeature ofuuidto force it to usegetrandomas its backend:If you're on
wasm32-unknown-unknownand using thejsfeature ofuuidyou shouldn't see any breakage. We've kept this behavior by vendoring ingetrandom's web-based backend when thejsfeature is enabled.What's Changed
getrandomto0.3andrandto0.9by @KodrAus in https://github.com/uuid-rs/uuid/pull/793getrandomonwasm32-unknown-unknownwithout JavaScript by @KodrAus in https://github.com/uuid-rs/uuid/pull/794Full Changelog: https://github.com/uuid-rs/uuid/compare/1.12.1...1.13.0
v1.12.1Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.12.0...1.12.1
v1.12.0Compare Source
⚠️ Possible Breakage
This release includes additional
PartialEqimplementations onUuid, which can break inference in some cases.What's Changed
NonZeroUuidtype for optimizedOption<Uuid>representation by @ab22593k in https://github.com/uuid-rs/uuid/pull/779NonNilUuidby @KodrAus in https://github.com/uuid-rs/uuid/pull/783New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.11.1...1.12.0
v1.11.1Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.11.0...1.11.1
v1.11.0Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.10.0...1.11.0
v1.10.0Compare Source
Deprecations
This release deprecates and renames the following functions:
Builder::from_rfc4122_timestamp->Builder::from_gregorian_timestampBuilder::from_sorted_rfc4122_timestamp->Builder::from_sorted_gregorian_timestampTimestamp::from_rfc4122->Timestamp::from_gregorianTimestamp::to_rfc4122->Timestamp::to_gregorianWhat's Changed
New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.9.1...1.10.0
v1.9.1Compare Source
What's Changed
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.9.0...1.9.1
v1.9.0Compare Source
Uuid::now_v7()is guaranteed to be monotonicBefore this release,
Uuid::now_v7()would only use the millisecond-precision timestamp for ordering. It now also uses a global 42-bit counter that's re-initialized each millisecond so that the following will always pass:What's Changed
New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.8.0...1.9.0
v1.8.0Compare Source
⚠️ Potential Breakage ⚠️
A new
impl AsRef<Uuid> for Uuidbound has been added, which can break inference on code like:You can fix these by explicitly typing the result of the conversion:
or by calling
as_bytesinstead:What's Changed
wasm-bindgenas a dependency onwasm32-unknown-unknownby @emilk in https://github.com/uuid-rs/uuid/pull/738New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.7.0...1.8.0
v1.7.0Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.6.1...1.7.0
v1.6.1Compare Source
What's Changed
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.6.0...1.6.1
v1.6.0Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.5.0...1.6.0
v1.5.0Compare Source
What's Changed
bytemucksupport by @John-Toohey in https://github.com/uuid-rs/uuid/pull/711New Contributors
Full Changelog: https://github.com/uuid-rs/uuid/compare/1.4.1...1.5.0
wasm-bindgen/wasm-bindgen (wasm-bindgen)
v0.2.106Compare Source
Added
New MSRV policy, and bump of the MSRV fo 1.71.
#4801
Added typed
thissupport in the first argument in free function exports viaa new
#[wasm_bindgen(this)]attribute.#4757
Added
reexportattribute for imports to support re-exporting imported types,with optional renaming.
#4759
Added
js_namespaceattribute on exported types, mirroring the importsemantics to enable arbitrarily nested exported interface objects.
#4744
Added 'container' attribute to
ScrollIntoViewOptions#4806
Updated and refactored output generation to use alphabetical ordering
of declarations.
#4813
Added benchmark support to
wasm-bindgen-test.#4812
#4823
Fixed
Fixed node test harness getting stuck after tests completed.
#4776
Quote names containing colons in generated .d.ts.
#4488
Fixes TryFromJsValue for structs JsValue stack corruption on failure.
#4786
Fixed
wasm-bindgen-test-runneroutputting empty line when using the--listoption. In particular,cargo-nextestnow works correctly.#4803
It now works to build with
-Cpanic=unwind.#4796
#4783
#4782
Fixed duplicate symbols caused by enabling v0 mangling.
#4822
Fixed a multithreaded wasm32+atomics race where
Atomics.waitAsyncpromise callbacks could callrunwithout waking first, causing sporadic panics.#4821
Removed
v0.2.105Compare Source
Added
Added
Math::PIbinding tojs_sys, exposing the ECMAScriptMath.PIconstant.#4748
Added ability to use
--keep-lld-exportsinwasm-bindgen-test-runnerby setting theWASM_BINDGEN_KEEP_LLD_EXPORTSenvironment variable.#4736
Added
CookieStoreAPI.#4706
Added
run_cli_with_argslibrary functions to allwasm_bindgen_clientrypoints.#4710
Added
get_rawandset_rawforWebAssembly.Table.#4701
Added
new_with_valueandgrow_with_valueforWebAssembly.Table.#4698
Added better support for async stack traces when building in debug mode.
#4711
Extended support for
TryFromJsValuetrait implementations.#4714
New
JsValue.is_null_or_undefined()method and intrinsic.#4751
Support for
Option<JsValue>in function arguments and return.#4752
Support for
WASM_BINDGEN_KEEP_TEST_BUILD=1environment variableto retain build files when using the test runner.
#4758
Fixed
Fixed multithreading JS output for targets
bundler,denoandmodule.#4685
Fixed
TextDe/Encoderdetection for audio worklet use-cases.#4703
Fixed post-processing failures in case Std has debug assertions enabled.
#4705
Fixed JS memory leak in
wasm_bindgen::Closure.#4709
Fixed warning when using
#[wasm_bindgen(wasm_bindgen=xxx)]on struct.#4715
Removed
wasm-bindgen-backendwill no longer be published.#4696
v0.2.104Compare Source
Added
Added bindings for
WeakRef.#4659
Support
Symbol.disposemethods by default, when it is supported in the environment.#4666
Added
aarch64-unknown-linux-muslrelease artifacts.#4668
Changed
Unconditionally use the global
TextEncoder/TextDecoderfor string encoding/decoding. The Node.js output now requires a minimum of Node.js v11.#4670
Deprecate the
msrvcrate feature. MSRV detection is now always on.#4675
Fixed
Fixed wasm-bindgen-cli's
encode_intoargument not working.#4663
Fixed a bug in
--experimental-reset-state-functionsupport for heap reset.#4665
Fixed compilation failures on Rust v1.82 and v1.83.
#4675
v0.2.103Compare Source
Fixed
#4656
v0.2.102Compare Source
Added
Added
DocumentOrShadowRoot.adoptedStyleSheets.#4625
Added support for arguments with spaces using shell-style quoting in webdriver
*_ARGSenvironment variables to
wasm-bindgen-test.#4433
Added ability to determine WebDriver JSON config location via
WASM_BINDGEN_TEST_WEBDRIVER_JSONenvironment variable towasm-bindgen-test.#4434
Generate DWARF for tests by default. See the guide on debug information for more details.
#4635
New
--target=moduletarget for outputting source phase imports.#4638
Changed
wasm-bindgen --helpdocs.#4646
Fixed
Fixed wrong method names for
GestureEventbindings.#4615
Fix crash caused by allocations during
TypedArrayinteractions.#4622
v0.2.101Compare Source
Added
Added format and colorSpace support to VideoFrameCopyToOptions
#4543
Added support for the
onbeforeinputattribute.#4544
TypedArray::new_from_slice(&[T])constructor that allows to create aJS-owned
TypedArrayfrom a Rust slice.#4555
Added
Function::call4andFunction::bind4throughFunction::call9Function::bind9methods for calling and binding JavaScript functions with 4-9 arguments.#4572
Added isPointInFill and isPointInStroke methods for the SVGGeometryElement idl.
#4509
Added unstable bindings for
GestureEvent.#4589
Stricter checks for
module,raw_moduleandinline_jsattributes applied to inapplicable items.#4522
Add bindings for
PictureInPicture.#4593
Added
bytesmethod for theBlobidl#4506
Add error message when export symbol is not found
#4594
Changed
Deprecate async constructors.
#4402
The
sizeargument toGPUCommandEncoder.copyBufferToBufferis now optional.#4508
MSRV of CLI tools bumped to v1.82. This does not affect libraries like
wasm-bindgen,js-sysandweb-sys!#4608
Fixed
Detect more failure scenarios when retrieving the Wasm module.
#4556
Add a workaround for
TextDecoderfailing in older version of Safari when too many bytes are decoded through it over its lifetime.#4472
TypedArray::from(&[T])now works reliably across memory reallocations.#4555
Fix incorrect memory loading and storing assertions during post-processing.
#4554
Fix test
--exactoption not working as expected.#4549
Fix tables being removed even though they are used by stack closures.
#4119
Skip
__wasm_call_ctorswhich we don't want to interpret.#4562
Fix infinite recursion caused by the lack of proc-macro hygiene.
#4601
Fix running coverage with no_modules.
#4604
Fix proc-macro hygiene with
core.#4606
Removed
Crates intended purely for internal consumption by the wasm-bindgen CLI will no longer be published:
#4608
wasm-bindgen-externref-xformwasm-bindgen-multi-value-xformwasm-bindgen-threads-xformwasm-bindgen-wasm-conventionswasm-bindgen-wasm-interpreterv0.2.100Compare Source
Released 2025-01-12
Added
Add attributes to overwrite return (``unchecked_return_type
) and parameter types (unchecked_param_type), descriptions (return_descriptionandparam_description) as well as parameter names (js_name`) for exported functions and methods. See the guide for more details.#4394
Add a
copy_to_uninit()method to allTypedArrays. It takes&mut [MaybeUninit<T>]and returns&mut [T].#4340
Add test coverage support for Node.js.
#4348
Support importing memory and using
wasm_bindgen::module()in Node.js.#4349
Add
--list,--ignored,--exactand--nocapturetowasm-bindgen-test-runner, analogous tocargo test.#4356
Add bindings to
Date.to_locale_time_string_with_options.#4384
#[wasm_bindgen]now correctly applies#[cfg(...)]s instructs.#4351
Changed
Optional parameters are now typed as
T | undefined | nullto reflect the actual JS behavior.#4188
Adding
getter,setter, andconstructormethods to enums now results in a compiler error. This was previously erroneously allowed and resulted in invalid JS code gen.#4278
Handle stuck and failed WebDriver processes when re-trying to start them.
#4340
Align test output closer to native
cargo test.#4358
Error if URL in
<WEBDRIVER>_REMOTEcan't be parsed instead of just ignoring it.#4362
Remove
WASM_BINDGEN_THREADS_MAX_MEMORYandWASM_BINDGEN_THREADS_STACK_SIZE. The maximum memory size can be set via-Clink-arg=--max-memory=<size>. The stack size of a thread can be set when initializing the thread via thedefaultfunction.#4363
console.*()calls in tests are now always intercepted by default. To show them use--nocapture. When shown they are always printed in-place instead of after test results, analogous tocargo test.#4356
Fixed
Fixed using JavaScript keyword as identifiers not being handled correctly.
#4329
structandenumnames will now error at compile time, instead of causing invalid JS code gen.js_namespaceon imports.js_namespaceormoduleattribute.js_namespaceormoduleattribute._{keyword}.Fixed passing large arrays into Rust failing because of internal memory allocations invalidating the memory buffer.
#4353
Pass along an
ignoreattribute tounsupportedtests.#4360
Use OS provided temporary directory for tests instead of Cargo's
targetdirectory.#4361
Error if URL in
<WEBDRIVER>_REMOTEcan't be parsed.#4362
Internal functions are now removed instead of invalidly imported if they are unused.
#4366
Fixed
no_stdsupport for all APIs inweb-sys.#4378
Prevent generating duplicate exports for closure conversions.
#4380
v0.2.99Compare Source
Released 2024-12-07
Fixed
wasm-bindgenv0.2.98 only compatible withwasm-bindgen-cliof the same version.#4331
v0.2.98Compare Source
Released 2024-12-07
Added
Add support for compiling with
atomicsfor Node.js.#4318
Add
WASM_BINDGEN_TEST_DRIVER_TIMEOUTenvironment variable to control the timeout to start and connect to the test driver.#4320
Add support for number slices of type
MaybeUninit<T>.#4316
Changed
Remove
once_cell/critical-sectionrequirement forno_stdwith atomics.#4322
static FOO: Option<T>now returnsNoneif undeclared in JS instead of throwing an error in JS.#4319
Fixed
Fix macro-hygiene for calls to
std::thread_local!.#4315
Fix feature resolver version 1 compatibility.
#4327
v0.2.97Compare Source
Released 2024-11-30
Fixed
js-sysandwasm-bindgen-futuresrelying on internal paths ofwasm-bindgenthat are not crate feature additive.#4305
v0.2.96Compare Source
Released 2024-11-29
Added
Added support for the
HTMLOrSVGElementmixin, which is used for all interfaces deriving fromElement.#4143
Added bindings for MathMLElement.
#4143
Added JSDoc type annotations to C-style enums.
#4192
Added support for C-style enums with negative discriminants.
#4204
Added bindings for
MediaStreamTrack.getCapabilities.#4236
Added WASM ABI support for
u128andi128#4222
Added support for the
wasm32v1-nonetarget.#4277
Added support for
no_stdtojs-sys,web-sys,wasm-bindgen-futuresandwasm-bindgen-test.#4277
Added support for
no_stdtolink_to!,static_string(viathread_local_v2) andthrow.#4277
Added environment variables to configure tests:
WASM_BINDGEN_USE_BROWSER,WASM_BINDGEN_USE_DEDICATED_WORKER,WASM_BINDGEN_USE_SHARED_WORKERWASM_BINDGEN_USE_SERVICE_WORKER,WASM_BINDGEN_USE_DENOandWASM_BINDGEN_USE_NODE_EXPERIMENTAL. The use ofwasm_bindgen_test_configure!will overwrite any environment variable.#4295
Changed
String enums now generate private TypeScript types but only if used.
#4174
Remove unnecessary JSDoc type annotations from generated
.d.tsfiles#4187
Deprecate
autofocus,tabIndex,focus()andblur()bindings in favor of bindings on the inheritedElementclass.#4143
Optimized ABI performance for
Option<{i32,u32,isize,usize,f32,*const T,*mut T}>.#4183
Deprecate
--reference-typesin favor of automatic target feature detection.#4237
wasm-bindgen-test-runnernow tries to restart the WebDriver on failure, instead of spending its timeout period trying to connect to a non-existing WebDriver.#4267
Deprecated
#[wasm_bindgen(thread_local)]in favor of#[wasm_bindgen(thread_local_v2)], which creates awasm_bindgen::JsThreadLocal. It is similar tostd::thread::LocalKeybut supportsno_std.#4277
Updated the WebGPU API to the current draft as of 2024-11-22.
#4290
Improved error messages for
selfarguments in invalid positions.#4276
Fixed
Fixed methods with
self: &Selfconsuming the object.#4178
Fixed unused string enums generating JS values.
#4193
Fixed triggering lints in testing facilities.
#4195
Fixed
#[should_panic]not working with#[wasm_bindgen_test(unsupported = ...)].#4196
Fixed potential
nullerror when usingJsValue::as_debug_string().#4192
Fixed generated types when the getter and setter of a property have different types.
#4202
Fixed generated types when a static getter/setter has the same name as an instance getter/setter.
#4202
Fixed invalid TypeScript return types for multivalue signatures.
#4210
Only emit
table.fillinstructions if the bulk-memory proposal is enabled.#4237
Fixed calls to
JsCast::instanceof()not respecting JavaScript namespaces.#4241
Fixed imports for functions using
thisand late binding.#4225
Don't expose non-functioning implicit constructors to classes when none are provided.
#4282
v0.2.95Compare Source
Released 2024-10-10
Added
Added support for implicit discriminants in enums.
#4152
Added support for
Selfin complex type expressions in methods.#4155
Changed
#4174
Fixed
Fixed generated setters from WebIDL interface attributes binding to wrong JS method names.
#4170
Fix string enums showing up in JS documentation and TypeScript bindings without corresponding types.
#4175
v0.2.94Compare Source
Released 2024-10-09
Added
Added support for the WebAssembly
Tail Callproposal.#4111
Add bindings for
RTCPeerConnection.setConfiguration(RTCConfiguration)method.#4105
Add bindings to
RTCRtpTransceiverDirection.stopped.#4102
Added experimental support for
Symbol.disposeviaWASM_BINDGEN_EXPERIMENTAL_SYMBOL_DISPOSE.#4118
Added bindings for the draft WebRTC Encoded Transform spec.
#4125
Added
Debugimplementation toJsError.#4136
Added support for
js_nameandskip_typescriptattributes for string enums.#4147
Added
unsupportedcrate towasm_bindgen_test(unsupported = test)as a way of running tests on non-Wasm targets as well.#4150
Added additional bindings for methods taking buffer view types (e.g.
&[u8]) with corresponding JS types (e.g.Uint8Array).#4156
Added additional bindings for setters from WebIDL interface attributes with applicaple parameter types of just
JsValue.#4156
Changed
Implicitly enable reference type and multivalue transformations if the module already makes use of the corresponding target features.
#4133
Updated Gamepad API.
#4134
Deprecated
Gamepad::display_idandGamepadHapticActuator::type_.#4134
Removed
GamepadAxisMoveEvent,GamepadAxisMoveEventInit,GamepadButtonEvent,GamepadButtonEventInitandGamepadServiceTest, which were seemingly never implemented by any JS environment.#4134
Changed
TextDecoder.decode()inputparameter type from&mut [u8]to&[u8].#4141
Updated the WebGPU API to the current draft as of 2024-10-07.
#4145
Deprecated generated setters from WebIDL interface attribute taking
JsValuein favor of newer bindings with specific parameter types.#4156
Fixed
Fixed linked modules emitting snippet files when not using
--split-linked-modules.#4066
Fixed incorrect deprecation warning when passing no parameter into
default()(init()) orinitSync().#4074
Fixed many proc-macro generated
implblocks missing#[automatically_derived], affecting test coverage.#4078
Fixed negative
BigIntvalues being incorrectly formatted with two minus signs.#4082
#4088
Fixed emitted
package.jsonstructure to correctly specify its dependencies#4091
Fixed returning
Option<Enum>now correctly has the| undefinedtype in TS bindings.#4137
Fixed enum variant name collisions with object prototype fields.
#4137
Fixed multiline doc comment alignment and remove empty ones entirely.
#4135
Fixed
experimental-nodejs-moduletarget when used with#[wasm_bindgen(start)].#4093
Fixed error when importing very large JS files.
#4146
Specify
"type": "module"when deploying to nodejs-module#4092
Fixed string enums not generating TypeScript types.
#4147
Bindings that take buffer view types (e.g.
&[u8]) as parameters will now correctly return aResultwhen they might not support a backingSharedArrayBuffer. This only applies to new and unstable APIs, which won't cause a breaking in the API.#4156
v0.2.93Compare Source
Released 2024-08-13
Added
Allow exporting functions named
default. Throw error in wasm-bindgen-cli if --target web andan exported symbol is named
default.#3930
Added support for arbitrary expressions when using
#[wasm_bindgen(typescript_custom_section)].#3901
Implement
From<NonNull<T>>forJsValue.#3877
Add method
copy_withinfor TypedArray, add methodsfind_last,find_last_indexfor Array.#3888
Added support for returning
Vecs from async functions.#3630
Added bindings for
InputDeviceInfoandMediaTrackCapabilities.#3935
Add bindings for
RTCRtpReceiver.getCapabilities(DOMString)method.#3941
Add bindings for
VisualViewport.#3931
Add bindings for
queueMicrotask.#3981
Add experimental bindings for User Agent Client Hints API
#3989
Add bindings for
FocusOptions.#3996
Add bindings for
RTCRtpReceiver.jitterBufferTarget.#3968
Generate getters for all WebIDL dictionary types.
#3993
Support for iterable in WebIDL. Gives
entries,keys,valuesmethods for regular and asynchronous, as well asfor_eachfor regular, iterables.#3962
Add bindings for
HTMLTableCellElement.abbrandscopeproperties.#3972
Add WebIDL definitions relating to
Popover API.#3977
Added the
thread_stack_sizeproperty to the object parameter ofdefault()(init()) andinitSync(), making it possible to set the stack size of spawned threads.__wbindgen_thread_destroy()now has a third optional parameter for the stack size, the default stack size is assumed when not passing it. When calling from the thread to be destroyed, by passing no parameters, the correct stack size is determined internally.#3995
Added bindings to the Device Memory API.
#4011
Added support for WebIDL records. This added new methods to various APIs, notably
ClipboardItem(),GPUDeviceDescriptor.requiredLimitsandHeader().#4030
Added an official MSRV policy. Library MSRV changes will be accompanied by a minor version bump. CLI tool MSRV can change with any version bump.
#4038
Added bindings to
NavigatorOptions.vibrate.#4041
Added an experimental Node.JS ES module target, in comparison the current
nodetarget uses CommonJS, with--target experimental-nodejs-moduleor when testing withwasm_bindgen_test_configure!(run_in_node_experimental).#4027
Added importing strings as
JsStringthrough#[wasm_bindgen(thread_local, static_string)] static STRING: JsString = "a string literal";.#4055
Added experimental test coverage support for
wasm-bindgen-test-runner, see the guide for more information.#4060
Changed
Stabilize Web Share API.
#3882
Generate JS bindings for WebIDL dictionary setters instead of using
Reflect. This increases the size of the Web API bindings but should be more performant. Also, importing getters/setters from JS now supports specifying the JS attribute name as a string, e.g.#[wasm_bindgen(method, setter = "x-cdm-codecs")].#3898
Greatly improve the performance of sending WebIDL 'string enums' across the JavaScript boundary by converting the enum variant string to/from an int.
#3915
Use
table.fillwhen appropriate.#3446
Annotated methods in WebCodecs that throw.
#3970
Update and stabilize the Clipboard API.
#3992
Deprecate builder-pattern type setters for WebIDL dictionary types and introduce non-mutable setters instead.
#3993
Allow imported async functions to return any type that can be converted from a
JsValue.#3919
Update Web Authentication API to level 3.
#4000
Deprecate
AudioBufferSourceNode.onendedandAudioBufferSourceNode.stop().#4020
Increase default stack size for spawned threads from 1 to 2 MB.
#3995
Deprecated parameters to
default(init) andinitSyncin favor of an object.#3995
Update
AbortSignalandAbortControlleraccording to the WHATWG specification.#4026
Update the Indexed DB API.
#4027
UnwrapThrowExt for Resultnow makes use of the requiredDebugbound to display the error as well.#4035
#4049
MSRV of CLI tools bumped to v1.76. This does not affect libraries like
wasm-bindgen,js-sysandweb-sys!#4037
Filtered files in published crates, significantly reducing the package size and notably excluding any bash files.
#4046
Deprecated
JsStaticin favor of#[wasm_bindgen(thread_local)], which creates astd::thread::LocalKey. The syntax is otherwise the same.#4057
Removed
impl Deref for JsStaticwhen compiling withcfg(target_feature = "atomics"), which was unsound.#4057
Updated the WebGPU WebIDL to the current draft as of 2024-08-05.
#4062
Use object URLs for linked modules without
--split-linked-modules.#4067
Fixed
Copy port from headless test server when using
WASM_BINDGEN_TEST_ADDRESS.#3873
Fix
catchnot being thread-safe.#3879
Fix MSRV compilation.
#3927
Fix
clippy::empty_docslint.#3946
Fix missing target features in module when enabling reference types or multi-value transformation.
#3967
Fixed Rust values getting GC'd while still borrowed.
#3940
Fixed Rust values not getting GC'd if they were created via. a constructor.
#3940
Fix triggering
clippy::mem_forgetlint in exported structs.#3985
Fix MDN links to static interface methods.
#4010
Fixed Deno support.
#3990
Fix
__wbindgen_thread_destroy()ignoring parameters.#3995
Fix
no_stdsupport and therefor compiling withdefault-features = false.#4005
Fix byte order for big-endian platforms.
#4015
Allow ex/importing structs, functions and parameters named with raw identifiers.
#4025
Implement a more reliable way to detect the stack pointer.
#4036
#[track_caller]is now always applied onUnwrapThrowExtmethods when not targetingwasm32-unknown-unknown.#4042
Fixed linked modules emitting snippet files when not using
--split-linked-modules.#4066
v0.2.92Compare Source
Released 2024-03-04
Added
Add bindings for
RTCPeerConnectionIceErrorEvent.#3835
Add bindings for
CanvasState.reset(), affectingCanvasRenderingContext2DandOffscreenCanvasRenderingContext2D.#3844
Add
TryFromimplementations forNumber, that allow losslessly converting from 64- and 128-bits numbers.#3847
Add support for
Option<*const T>,Option<*mut T>andNonNull<T>.#3852
#3857
Allow overriding the URL used for headless tests by setting
WASM_BINDGEN_TEST_ADDRESS.#3861
Fixed
Make .wasm output deterministic when using
--reference-types.#3851
Don't allow invalid Unicode scalar values in
char.#3866
v0.2.91Compare Source
Released 2024-02-06
Added
Added bindings for the
RTCRtpTransceiver.setCodecPreferences()and unstable bindings for theRTCRtpEncodingParameters.scalabilityMode.#3828
Add unstable bindings for the FileSystemAccess API
#3810
Added support for running tests in shared and service workers with
wasm_bindgen_test_configure!run_in_shared_workerandrun_in_service_worker.#3804
Accept the
--skipflag withwasm-bindgen-test-runner.#3803
Introduce environment variable
WASM_BINDGEN_TEST_NO_ORIGIN_ISOLATIONto disable origin isolation forwasm-bindgen-test-runner.#3807
Add bindings for
USBDevice.forget().#3821
Changed
Stabilize
ClipboardEvent.#3791
Use immutable buffers in
SubtleCryptomethods.#3797
Deprecate
wasm_bindgen_test_configure!srun_in_workerin favor ofrun_in_dedicated_worker.#3804
Updated the WebGPU WebIDL to the current draft as of 2024-01-30. Note that this retains the previous update's workaround for
GPUPipelineError, and holds back an update to thebufferargument of theGPUQueue.{writeBuffer,writeTexture}methods.#3816
Deprecate
--weak-refsandWASM_BINDGEN_WEAKREFin favor of automatic run-time detection.#3822
Fixed
Fixed UB when freeing strings received from JS if not using the default allocator.
#3808
Fixed temporary folder detection by
wasm-bindgen-test-runneron MacOS.#3817
Fixed using
#[wasm_bindgen(js_name = default)]with#[wasm_bindgen(module = ...)].#3823
Fixed nightly build of
wasm-bindgen-futures.#3827
v0.2.90Compare Source
Released 2024-01-06
Fixed
#3748
Added
Add bindings for
HTMLFormElement.requestSubmit().#3747
Add bindings for
RTCRtpSender.getCapabilities(DOMString)method,RTCRtpCapabilities,RTCRtpCodecCapabilityandRTCRtpHeaderExtensionCapability.#3737
Add bindings for
UserActivation.#3719
Add unstable bindings for the Compression Streams API.
#3752
Changed
Stabilize File System API.
#3745
Stabilize
QueuingStrategy.#3753
Fixed
#[wasm_bindgen]insidemacro_rules!.#3725
Removed
InstallTriggerDataand Gecko-internalFlexLineGrowthState,GridDeclaration,GridTrackState,RtcLifecycleEventandWebrtcGlobalStatisticsReportfeatures.#3723
v0.2.89Compare Source
Released 2023-11-27.
Added
Add additional constructor to
DataViewforSharedArrayBuffer.#3695
Stabilize
wasm_bindgen::module().#3690
Fixed
The DWARF section is now correctly modified instead of leaving it in a broken state.
#3483
Fixed an issue where
#[wasm_bindgen]automatically derived theTryFromtrait for any struct, preventing customTryFrom<JsValue>implementations. It has been updated to utilize a newTryFromJsValuetrait instead.#3709
Update the TypeScript signature of
__wbindgen_thread_destroyto indicate that it's parameters are optional.#3703
Removed
Csp,CspPolicies,CspReportandCspReportProperties.#3721
v0.2.88Compare Source
Released 2023-11-01
Added
Add bindings for
RTCRtpTransceiverInit.sendEncodings.#3642
Add bindings for the Web Locks API to
web-sys.#3604
Add bindings for
ViewTransitiontoweb-sys.#3598
Extend
AudioContextwith unstable features supporting audio sink configuration.#3433
Add bindings for
WebAssembly.TagandWebAssembly.Exception.#3484
Re-export
wasm-bindgenfromjs-sys,web-sysandwasm-bindgen-futures.#3466
#3601
Re-export
js-sysfromweb-sysandwasm-bindgen-futures.#3466
#3601
Add bindings for async variants of
Atomics.wait.#3504
Add bindings for
WorkerGlobalScope.performance.#3506
Add support for installing pre-built artifacts of
wasm-bindgen-clivia
cargo binstall wasm-bindgen-cli.#3544
Add bindings for
RTCDataChannel.id.#3547
Add bindings for
HTMLElement.inert.#3557
Add unstable bindings for the Prioritized Task Scheduling API.
#3566
Add bindings for
CssStyleSheetconstructor andreplace(_sync)methods.#3573
Add bindings for
CanvasTransform.setTransform(DOMMatrix2DInit).#3580
Add a
crateattribute to thewasm_bindgen_testproc-macro to specify anon-default path to the
wasm-bindgen-testcrate.#3593
Add support for passing
Vecs of exported Rust types and strings to/from JS.#3554
Implement
TryFrom<JsValue>for exported Rust types and strings.#3554
Handle the
#[ignore = "reason"]attribute with thewasm_bindgen_testproc-macro and accept the
--include-ignoredflag withwasm-bindgen-test-runner.#3644
Added missing additions to the Notification API.
#3667
Changed
Updated the WebGPU WebIDL.
The optional
messageargument ofGPUPipelineError's constructor has been manually specified as a required argument,because required arguments occurring after optional arguments are currently not supported by the generator.
#3480
Replaced
curlwithureq. By default we now use Rustls instead of OpenSSL.#3511
Changed mutability of the argument
bufferinwritefunctions to immutable forFileSystemSyncAccessHandleandFileSystemWritableFileStream.It was also automatically changed for
IdbFileHandle, which is deprecated.#3537
Changed behavior when compiling to
wasm32-wasito matchwasm32-emscriptenandnon-Wasm targets, generating a stub that panics when called rather than a wasm-
bindgen placeholder.
#3233
Changed constructor implementation in generated JS bindings, it is now
possible to override methods from generated JS classes using inheritance.
When exported constructors return
Self.#3562
Made
wasm-bindgenforwards-compatible with the standard C ABI.#3595
Changed the design of the internal
WasmAbitrait. Rather than marking a typewhich can be passed directly as a parameter/result to/from JS, it now lets
types specify how they can be split into / recreated from multiple primitive
types which are then passed to/from JS.
WasmPrimitivenow serves the old function ofWasmAbi, minus allowing#[repr(C)]types.#3595
Use
queueMicrotaskinwasm-bindgen-futuresfor scheduling tasks on the next tick.If that is not available, use the previous
Promise.thenmechanism as a fallback.This should avoid quirks, like exceptions thrown get now properly reported
as normal exceptions rather than as rejected promises.
#3611
Improved TypeScript bindings to accurately reference Rust enum types in function signatures,
enhancing type safety and compatibility.
#3647
Throw an error on enum name collisions, previously only one enum would be emitted.
#3669
Fixed
Fixed
wasm_bindgenmacro to handle raw identifiers in field names.#3621
Fixed bindings and comments for
Atomics.wait.#3509
Fixed
wasm_bindgen_testmacro to handle raw identifiers in test names.#3541
Fixed Cargo license field to follow the SPDX 2.1 license expression standard.
#3529
Use fully qualified paths in the
wasm_bindgen_testmacro.#3549
Fixed bug allowing JS primitives to be returned from exported constructors.
#3562
Fixed optional parameters in JSDoc.
#3577
Use re-exported
js-sysfromwasm-bindgen-futuresto account fornon-default path specified by the
crateattribute inwasm_bindgen_futuresproc-macro.
#3601
Fix bug with function arguments coming from
macro_rules!.#3625
Fix some calls to
free()missing alignment.#3639
Fix wrong ABI for raw pointers.
#3655
Removed
Removed
ReadableStreamByobReader::read_with_u8_array()because it doesn't work with Wasm.#3582
Removed
GetNotificationOptions,NotificationBehaviorandNotification.get()becausethey don't exist anymore.
buehler/zitadel-rust (zitadel)
v5.5.1Compare Source
Bug Fixes
v5.5.0Compare Source
Features
Application::load_from_fileto accept paths (#583) (2956242)v5.4.0Compare Source
Features
v5.3.3Compare Source
Bug Fixes
v5.3.2Compare Source
Bug Fixes
v5.3.1Compare Source
Bug Fixes
v5.2.0Compare Source
Features
v5.1.0Compare Source
Features
v5.0.0Compare Source
Features
BREAKING CHANGES
have changed. Please update to the newest returned types
to use the client builder. This removed the ChainedInterceptor
which essentially has hidden the cloneable feature for
interceptors.
from the introspected user. It is possible to achieve the same
mechanism with the following work around:
v4.4.0Compare Source
Features
v4.3.5Compare Source
Bug Fixes
v4.3.4Compare Source
Bug Fixes
v4.3.3Compare Source
Bug Fixes
v4.3.2Compare Source
Bug Fixes
v4.3.1Compare Source
Bug Fixes
v4.3.0Compare Source
Features
v4.2.5Compare Source
Bug Fixes
v4.2.4Compare Source
Bug Fixes
v4.2.3Compare Source
Bug Fixes
v4.2.2Compare Source
Bug Fixes
v4.2.1Compare Source
Bug Fixes
v4.2.0Compare Source
Features
v4.1.6Compare Source
Bug Fixes
v4.1.5Compare Source
Bug Fixes
v4.1.4Compare Source
Bug Fixes
v4.1.3Compare Source
Bug Fixes
v4.1.2Compare Source
Bug Fixes
v4.1.1Compare Source
Bug Fixes
v4.1.0Compare Source
Features
v4.0.5Compare Source
Bug Fixes
IntrospectionConfigto facilitate creating Axum substates (#523) (f1133ad)v4.0.4Compare Source
Bug Fixes
v4.0.3Compare Source
Bug Fixes
v4.0.2Compare Source
Bug Fixes
v4.0.1Compare Source
Bug Fixes
v4.0.0Compare Source
Features
BREAKING CHANGES
have changed. There is no module "with access token"
or "with service account" anymore. Instead, there is a
centralized
ClientBuilderin the clients module of theapi to create and configure the gRPC clients. The new
builder allows configuring auth methods beforehand
and then create the according client out of it.
v3.5.1Compare Source
Bug Fixes
v3.5.0Compare Source
Features
v3.4.29Compare Source
Bug Fixes
v3.4.28Compare Source
Bug Fixes
v3.4.27Compare Source
Bug Fixes
v3.4.26Compare Source
Bug Fixes
v3.4.25Compare Source
Bug Fixes
v3.4.24Compare Source
Bug Fixes
v3.4.23Compare Source
Bug Fixes
v3.4.22Compare Source
Bug Fixes
v3.4.21Compare Source
Bug Fixes
v3.4.20Compare Source
Bug Fixes
v3.4.19Compare Source
Bug Fixes
v3.4.18Compare Source
Bug Fixes
v3.4.17Compare Source
Bug Fixes
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
⚠ 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:
The artifact failure details are included below:
File name: crates/como_web/Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
42ce4ae524toe8b6d17016e8b6d17016tobfe629cb99bfe629cb99to0f85a94cad0f85a94cadtodde598d6b9dde598d6b9to9071a08f049071a08f04tod2c874b724d2c874b724tod2057fcc57d2057fcc57to35676a130435676a1304toee66c9b15bee66c9b15bto128d8e4eba128d8e4ebatodcca19df1adcca19df1ato7b0e159d7c7b0e159d7cto84a9e11b8e84a9e11b8etobd4caba331bd4caba331to5c21fb58d55c21fb58d5to51a8855a1d51a8855a1dto188306f818188306f818to5fb6638f665fb6638f66to3b1dabb55f3b1dabb55ftocae51e44cfcae51e44cfto91e2b4e31e91e2b4e31eto4eca72186c4eca72186ctodf2052485bdf2052485btob2a4ec6c01b2a4ec6c01toeda649820beda649820bto0b872992320b87299232tocbeae30475cbeae30475to6f0183739a6f0183739ato83f4f90f6d83f4f90f6dto3ff454dd0d3ff454dd0dtob86d0f7ecab86d0f7ecato52e8ec359652e8ec3596to543f729471543f729471to0747b7f0220747b7f022to23b90b196523b90b1965tof477cc4923f477cc4923to76636b161176636b1611to2c78659a0a2c78659a0ato71e077885f71e077885fto03afe6a56903afe6a569toa7b96b1c3da7b96b1c3dto549dd4ecf0549dd4ecf0tof3b98159bff3b98159bfto48dd88289948dd882899to3b8071f7473b8071f747tode19ac88ddde19ac88ddto13c534337913c5343379to74d50cf15874d50cf158to6b6eabd67e6b6eabd67eto36e021e1c236e021e1c2toc262825c38c262825c38toc44ece9b40c44ece9b40to6ed15dba7b6ed15dba7bto7c07a3e3ea7c07a3e3eato31702a700e31702a700eto260ce9a4fc260ce9a4fcto858e3ac753858e3ac753to2c6459cbc82c6459cbc8to425728e8fc425728e8fcto201f063111201f063111to51940fbc5551940fbc55to4de9681ee84de9681ee8toa2c0db4a19a2c0db4a19to45dd1137bb45dd1137bbto6f3355d0b96f3355d0b9tod49ece48d3d49ece48d3to022c1e4c5f022c1e4c5ftof96478a084f96478a084to711bdf384c711bdf384ctoc5444e0a42c5444e0a42to4e5d5279e44e5d5279e4tof7019e92b9f7019e92b9to34b3cc06e934b3cc06e9tob0b27cff68b0b27cff68to2d3ec0239d2d3ec0239dto95bef2bfce95bef2bfceto36f65392a936f65392a9to3822e8ad583822e8ad58to9210f4aef79210f4aef7to319ac17c74319ac17c74toba259d0b5fba259d0b5ftoe91c3701a1e91c3701a1to4986f0cedf4986f0cedfto3e6b6b88d2chore(deps): update all dependenciesto fix(deps): update all dependencies3e6b6b88d2toc6e42895dbc6e42895dbtoa4fc2dee7ea4fc2dee7etof3e6faa989f3e6faa989tobd34271808bd34271808to39d319ee6239d319ee62toebaf839263ebaf839263to1504225c3d1504225c3dto71ab3640f871ab3640f8to40f0b2948a40f0b2948ato6909ab17236909ab1723to74fc31783574fc317835to0113e5827a0113e5827atoa9ea496163a9ea496163to452c72d1e2452c72d1e2to9f63a86e1e9f63a86e1eto1a6663b0661a6663b066to3eb3562e6a3eb3562e6atob2dfba4980b2dfba4980to6e8d2f9ee76e8d2f9ee7tof123a156c2f123a156c2toa0ddb3e5dda0ddb3e5ddtoeec23de1caeec23de1catoe9e7061607e9e7061607to1a902601531a90260153to55728492865572849286to723b62fd01723b62fd01to5b8165b53f5b8165b53fto0e048d92320e048d9232tod90a3336c2d90a3336c2to2a7d345cf32a7d345cf3to3bc1515cd73bc1515cd7toa33c5cc40ba33c5cc40btodbbb86a06edbbb86a06etob4e35bdec7b4e35bdec7toeb75658ccfeb75658ccfto056244fe1c056244fe1cto01b062234c01b062234cto2fe3f75e542fe3f75e54to6a07b8dafa6a07b8dafato54e42f397a54e42f397ato2fe87886a82fe87886a8to7aaa736e827aaa736e82to71a3bdb57a71a3bdb57ato0335fbe1250335fbe125to888e986363888e986363tof88afe4c4df88afe4c4dtob9b91deb25b9b91deb25to57a8ff2ebf57a8ff2ebfto2c993651702c99365170to1a8a81668c1a8a81668cto8c90b73bb58c90b73bb5tof36c54c2a7f36c54c2a7toefd52817caefd52817catof65a21ddeff65a21ddeftob875f268fdb875f268fdto2a955d447b2a955d447bto1dc39e36291dc39e3629to7e2aec8cb57e2aec8cb5to714a1a7e6d714a1a7e6dto0bad94aca70bad94aca7tob188102169b188102169to8f9a94a91f8f9a94a91fto10229a8a8b10229a8a8btoa6b4260808a6b4260808toe618783887e618783887to76d8cb518876d8cb5188toaa5670f40faa5670f40ftoefc3e2813befc3e2813bto1be5c043e11be5c043e1toe2414179afe2414179aftodd98b2b5a6dd98b2b5a6to105f7ac17e105f7ac17eto1fa9b3389a1fa9b3389ato1c5c0028ba1c5c0028batoc85ddbaad9c85ddbaad9todb15f3c3dddb15f3c3ddto180c0043ab180c0043abtoc466561b6ac466561b6ato68e9c9b04768e9c9b047toee386c874fee386c874fto95939cbd7695939cbd76to293bb0c041293bb0c041tod5233eba15d5233eba15toe2faa9fb22e2faa9fb22tof54f238721f54f238721to2e509a532f2e509a532fto6e8807d78a6e8807d78atoa76ca15b9da76ca15b9dto0460b29dff0460b29dffto3ac1de218e3ac1de218eto0157314a910157314a91toabcea8f6bcabcea8f6bcto21b9da52b321b9da52b3tocf2f8b5d1bcf2f8b5d1bto6532b7f46c6532b7f46ctoc0f824fc22c0f824fc22to81cfa3035781cfa30357to1416df0b431416df0b43todc51980c88dc51980c88to7392fd393e7392fd393eto1f294f860d1f294f860dto5a75edbeb25a75edbeb2to5d827e33bd5d827e33bdto605790f4f7605790f4f7to2b3229231d2b3229231dto1903183c581903183c58to90fd4da40b90fd4da40btoe22c016319e22c016319to961ac17653961ac17653tofd8ea779cdfd8ea779cdtofbbeafc4d4fbbeafc4d4to45f6effb9245f6effb92tof42a85e763f42a85e763toce9073c63ace9073c63ato8fa31494e68fa31494e6to1532ea65521532ea6552toba8dd8eacbba8dd8eacbtof7ec38aad3f7ec38aad3to3fc4152a9c3fc4152a9ctoa7216ecd69a7216ecd69todab0ae79b5dab0ae79b5to44aaab5d4044aaab5d40tofb39594897⚠️ 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:
The artifact failure details are included below:
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: crates/como_web/Cargo.lock
fb39594897to74468446df74468446dfto0acf52d5400acf52d540to3b790a877b3b790a877bto68004b9ba168004b9ba1to4138a258d44138a258d4to1874ea297d1874ea297dtoacb30f1606acb30f1606to108b35b324108b35b324to7a77b88b9a7a77b88b9ato8a870fa9f48a870fa9f4to456b9de80e456b9de80eto25f564987625f5649876toa0e09bf350a0e09bf350to08748f62d608748f62d6toceeeb662fbceeeb662fbto507b677406507b677406to8b577314568b57731456tof2d6ae70bbf2d6ae70bbto17d8d703aa17d8d703aato6cc14063726cc1406372to98f0bcd2e298f0bcd2e2to6c61dce78b6c61dce78bto27df7419e627df7419e6toe99bae1a15e99bae1a15toad5fb97473ad5fb97473to0772734e3c0772734e3cto9abeec0df29abeec0df2tod90b20a060d90b20a060to57de8e30fd57de8e30fdto541aa9ac7a541aa9ac7ato04f3acff8f04f3acff8fto778101d85d778101d85dtod4f7442dbbd4f7442dbbtocd067b6d37cd067b6d37tof4c3e5b4e7f4c3e5b4e7to7b2e9163c77b2e9163c7to22181f3d7522181f3d75to7dd4e5a86c7dd4e5a86cto25357788b725357788b7to0f153a86d10f153a86d1toa69ba140d4a69ba140d4to0fba3c10b00fba3c10b0to6fb07b87336fb07b8733to39520c642639520c6426tobd8e3228ebbd8e3228ebto3dd53c40953dd53c4095tofc92d7051afc92d7051ato39566c274f39566c274ftoe56c522673e56c522673tode05001772de05001772toe094425063e094425063to526775535d526775535dtoe740b5cd87e740b5cd87to71462e065f71462e065ftob2f323f999b2f323f999to2bc9d50a032bc9d50a03to3ec93edaaa3ec93edaaatoea08e03542ea08e03542to57d0c738d257d0c738d2toe620fb1c00e620fb1c00to392aa48f01392aa48f01to2098bf37322098bf3732to57e41f00d157e41f00d1to434478a8f6434478a8f6to775e3e6885775e3e6885toa5981a70b3a5981a70b3to86648f842a86648f842ato9a26dd1aca9a26dd1acato27520ff1f327520ff1f3to92601e2dc292601e2dc2to9e4e8f920b9e4e8f920btoad0ad339bead0ad339betod856917484d856917484to20bfa7e76320bfa7e763to59278076fa59278076fato90ea20d34a90ea20d34ato6f83e61d686f83e61d68to072395451c072395451cto58011a06ac58011a06actobb2e8844fabb2e8844fatoaf4ab864e4af4ab864e4to2736e7fd3a2736e7fd3ato12d4b0d04f12d4b0d04fto96c3c2e11a96c3c2e11ato6963bc18d56963bc18d5todb7421e7fadb7421e7fatocc3eeaf222cc3eeaf222to936b4d41dd936b4d41ddto60449bd9e860449bd9e8to2885df70902885df7090toce151a544ece151a544eto5e434407895e43440789toaf2b32dcacaf2b32dcacto83841bdc5083841bdc50toa81f90eb89a81f90eb89to1b4bfff9a51b4bfff9a5to72df8153b272df8153b2to119a1ae784119a1ae784to0184ae35840184ae3584to1008acc90c1008acc90cto20626d963d20626d963dto593b2e12fa593b2e12fato148ba63b96148ba63b96tof84c5f38c3f84c5f38c3to7bc5320a357bc5320a35to76a73551d776a73551d7to30b43f6bd530b43f6bd5tobaa272bb1fbaa272bb1fto2f9c6e51f02f9c6e51f0to5520755f625520755f62to7f991020a77f991020a7to16e7a7c2ac16e7a7c2actof06782bcd7f06782bcd7to3fb11450c53fb11450c5to7aba9707ce7aba9707cetocd15e83e37cd15e83e37to76284e1d2676284e1d26tod37e3b37ddd37e3b37ddto0ea5a03b5f0ea5a03b5ftofe7f61ca16fe7f61ca16tofa2d5f81d6fa2d5f81d6to2c5b1f6c122c5b1f6c12toe983d95ebae983d95ebatof0bbe7dc01f0bbe7dc01to8a2848ef758a2848ef75tofb0b0664aafb0b0664aatoa4c510f6b5a4c510f6b5tof760e8f50af760e8f50atobb23f7cfcebb23f7cfcetobca8faf6bfbca8faf6bfto313f933ab2313f933ab2to2addaeeeab2addaeeeabto70c930dbae70c930dbaeto19c9f68ea319c9f68ea3to8adfbb31f98adfbb31f9tob4e9222e3eb4e9222e3eto0f883819ab0f883819abto91caa893e991caa893e9to8b0926a1178b0926a117to5842d5868c5842d5868cto51865b1af351865b1af3to6459588bbf6459588bbftoee4a2db800ee4a2db800to135239773f135239773fto5085b919205085b91920to9a334908f79a334908f7tobb16cb639abb16cb639ato9c2afb30229c2afb3022to925777c2cc925777c2ccto642d8041d7642d8041d7to85089c568f85089c568fto4b90da1e924b90da1e92to141366cf4a141366cf4atoe2b49d0ff2e2b49d0ff2tob78e15f539b78e15f539toaa458b21caaa458b21catof49ba69300f49ba69300to512edecd45512edecd45to1d11254d221d11254d22to01c1e6764301c1e67643tob1c1d88dbbb1c1d88dbbto5b01f4e1c75b01f4e1c7to078a7a026c078a7a026cto1cfa9fd4f21cfa9fd4f2to260244773d260244773dto84e6c672e384e6c672e3to50288c966650288c9666to4530d2b5754530d2b575to585c04d25e585c04d25etoc511ca44cec511ca44cetoff648ba130ff648ba130tob3c0ff1a04b3c0ff1a04to7b440df87e7b440df87etofc55173353fc55173353tob1234cb326b1234cb326toccfe629796ccfe629796tod9287805a2d9287805a2to0e6a98e9750e6a98e975to0aa922d64b0aa922d64btod2e49e7e43d2e49e7e43to734c41a076734c41a076tod7295f8c4bd7295f8c4bto6316bbfc846316bbfc84to14a1efef4f14a1efef4fto6c909e2a806c909e2a80to8939115d398939115d39tob1c6cb7f2eb1c6cb7f2eto06fc9b10cf06fc9b10cftoe372fd717ae372fd717atoda599d2014da599d2014to73c4a64ceb73c4a64cebto1b7d07bdc61b7d07bdc6to816de894b5816de894b5to830b9a4ddc830b9a4ddcto4b218a12bd4b218a12bdtofa88d2a2dffa88d2a2dftoc3ab292f57c3ab292f57to25f3ba5eac25f3ba5eactod8bb08da36d8bb08da36to08cb7a016f08cb7a016ftoa2e765550ea2e765550etoef6486a71def6486a71dto191bb28dd8191bb28dd8to7518c5a0e27518c5a0e2to773e5f66c7773e5f66c7to975c5dc249975c5dc249to32a74b2e6632a74b2e66toae16bbf1e4ae16bbf1e4to3931b0706c3931b0706ctoca99342ddfca99342ddfto3df198d5323df198d532to9ca6412fc39ca6412fc3tob157a177d4b157a177d4toc7b9e4b15dc7b9e4b15dto0b9b24d3c50b9b24d3c5to521941ede0521941ede0toc64e00ff4fc64e00ff4fto06d72b4a1d06d72b4a1dto2bb17407e02bb17407e0toff72d5c98cff72d5c98cto254c77c985254c77c985to2aba10aad82aba10aad8tod59f7604cdd59f7604cdtof9ff070968f9ff070968to87c43fd1c287c43fd1c2to12b186a76312b186a763tofccf20d2d9fccf20d2d9to0afc774d9d0afc774d9dto075b857e38075b857e38to004f0e9851004f0e9851to3e8eda27653e8eda2765to680e1b5404680e1b5404to81aa842b7e81aa842b7etobe97567cf1be97567cf1to167dcc0d63167dcc0d63toff67aefc89ff67aefc89to9c92b488eb9c92b488ebto0804597abc0804597abctoe0fdd6f348e0fdd6f348toedd7d52d51edd7d52d51to0a5569cdd40a5569cdd4toa20d45db8fa20d45db8ftoac6084b6d4ac6084b6d4todbaed750ffdbaed750ffto260e958efc260e958efctodbcdb0a614dbcdb0a614to03ef2664bd03ef2664bdtob4b04de000b4b04de000toe64243dacfe64243dacfto08bbaf543008bbaf5430to8521c5471d8521c5471dto546ea6c862546ea6c862to00e5f6cafa00e5f6cafatoc65b0f1efac65b0f1efato55c755575755c7555757tofe51ad69fcfe51ad69fctod2c624f6a9d2c624f6a9to96e5af996f96e5af996ftoea97e0060bea97e0060bto4ddbe78c8f4ddbe78c8fto6ae91735016ae9173501tocaac1d6fd6caac1d6fd6to9f6697a1719f6697a171to813f836200813f836200to5ee03975c05ee03975c0to663769e0f0663769e0f0toeb0ea8892beb0ea8892btof9061c75e6f9061c75e6toefad10f7e9efad10f7e9to3a728ba06a3a728ba06atob1b9fee4afb1b9fee4afto452eef1f5e452eef1f5eto29efa688b529efa688b5to90d73bcd9290d73bcd92to9acc5ece869acc5ece86tob98d0760d6b98d0760d6to968f1ac3a5968f1ac3a5to921fc35edd921fc35eddtoff7d458ae5ff7d458ae5to1fb6717a881fb6717a88to49d11d244b49d11d244bto92640baa6992640baa69to54a98055e954a98055e9tocb65ea89abcb65ea89abtod4b0bbde6fd4b0bbde6fto6b464d62fd6b464d62fdto51129606315112960631to19e1bbecc119e1bbecc1to2f3311c20d2f3311c20dto7374d1bb767374d1bb76tof4f91c42f6f4f91c42f6to949255e154949255e154to4166d3a4ae4166d3a4aetob636e84edab636e84edato3a762198923a76219892tocd9713fa18cd9713fa18toe13b67183be13b67183btoa49781ac8ea49781ac8eto2e5cc25bf12e5cc25bf1to451e010b19451e010b19to979ebb684c979ebb684cto55d3bb7a3e55d3bb7a3etod2bba83a7fd2bba83a7fto7a9fa33f6f7a9fa33f6ftoe281edfb6ee281edfb6eto44cb7132a744cb7132a7to7d040532547d04053254to323728244a323728244atob0200e0752b0200e0752to78c103b7fe78c103b7feto7dfb56cae87dfb56cae8tocd069b61e9cd069b61e9toe3f887adeee3f887adeeto08aba1602508aba16025to6a5b0429776a5b042977to503cd28d52503cd28d52to0cd80daad00cd80daad0to12fedabfd112fedabfd1to46d3f15dce46d3f15dcetofa108d858dfa108d858dtobbc0b94aacbbc0b94aacto5bf8f108165bf8f10816tofceb61f495fceb61f495to2b3720e14d2b3720e14dto6f9b2f56396f9b2f5639tofda1415d93fda1415d93to76c2c113df76c2c113dfto55675961c555675961c5to651f696fe9651f696fe9to3cb18ee9613cb18ee961toe7c38f0fbae7c38f0fbato2f1e004b572f1e004b57to683afbe636683afbe636to5093aefd625093aefd62tofb8fc77c2afb8fc77c2ato7e6950fb3b7e6950fb3bto33ac8ffb4f33ac8ffb4ftoc4db0c1abfc4db0c1abftoe918cdf6c6e918cdf6c6to08287fb52a08287fb52ato896c54654a896c54654atofcc485d1fcfcc485d1fcto732f276c26732f276c26to21603aea8b21603aea8bto9819bdf2569819bdf256to8ab7c70e8f8ab7c70e8fto36fb64c1c836fb64c1c8toa1c21769aea1c21769aetoe22b54ab72e22b54ab72to189d117795189d117795to1b3194d7e91b3194d7e9to1ff82261051ff8226105toe8659dec23e8659dec23tob22a2cd529b22a2cd529to8720d4d8128720d4d812tof73638de30f73638de30to905bc07aa5905bc07aa5to11931191be11931191betofda2d0addcfda2d0addctod6838b73f4d6838b73f4to2ff6cba3882ff6cba388to2ba9a2e48a2ba9a2e48atoa861aee649a861aee649tob224cf28cdb224cf28cdto2e349f949f2e349f949ftod9ae8819b5d9ae8819b5to45cddd5df345cddd5df3to555a730f18555a730f18to8eead4a1e58eead4a1e5to658ca4b62d658ca4b62dtoae29ace2c3ae29ace2c3to2a72ffd8a42a72ffd8a4tof7f2bec5a6f7f2bec5a6toe52693476fe52693476fto9e9bbe5f659e9bbe5f65to232aa5f986232aa5f986toabca120086abca120086tof822385e5ef822385e5etof20a5befbaf20a5befbato05113d173d05113d173dto25ac7b0c7e25ac7b0c7eto2109fdb7ac2109fdb7acto5bb7213ffd5bb7213ffdto12e423087112e4230871to0d3f9a6c1c0d3f9a6c1cto2c1de372052c1de37205to015619c308015619c308to02bb85cb1902bb85cb19to3cbe2214723cbe221472toe30aaa0d2ce30aaa0d2ctof335a901e5f335a901e5tob6cdd39b86b6cdd39b86to108d82e004108d82e004to35188366573518836657tobd69281011bd69281011to2a5e72e2ad2a5e72e2adto1e850f3c621e850f3c62to2dd8b4316c2dd8b4316cto895ed74e9a895ed74e9atof4a8725efbf4a8725efbto688d010ae3688d010ae3tobe8c4df483be8c4df483to27dd9d07bf27dd9d07bfto559c7d2e48559c7d2e48toe175656a5ee175656a5etob628ac8b6ab628ac8b6ato0f73081f8b0f73081f8bto01cbb18ad601cbb18ad6tof0016d2b08f0016d2b08to5de6627afa5de6627afato12ab73d3a912ab73d3a9to73f9ac65bd73f9ac65bdtoa99d2eeb75a99d2eeb75toc436fef20ec436fef20eto819f941294819f941294to559d7f76fd559d7f76fdto1d879830751d87983075tob0bc715ac1b0bc715ac1tod0c82d6b6ad0c82d6b6ato088688998e088688998etob54783d7dcb54783d7dctocd2a679e4bcd2a679e4btod4d5239053d4d5239053tofc1f62fb1bfc1f62fb1bto7eaf4abfcf7eaf4abfcfto2bb54b2d122bb54b2d12to0b9e48b78c0b9e48b78ctob8fbd3c7d9b8fbd3c7d9to88c6bc032788c6bc0327to18831f59a818831f59a8to1bbb7d67011bbb7d6701to66f6d841b266f6d841b2to4819b2114f4819b2114fto11c29f4dbc11c29f4dbcto1674ad741e1674ad741eto050782d975050782d975to0983e6b3640983e6b364to3756823d3f3756823d3fto80e41b383580e41b3835to62948cd15062948cd150to6b6381848c6b6381848ctoafbd64e367afbd64e367to9cc52a11269cc52a1126to08c447972508c4479725to02a134211e02a134211eto87aab1d57e87aab1d57etocbc59e45f6cbc59e45f6to5562859b4b5562859b4bto1bb2d1e0351bb2d1e035to1cd30be8d31cd30be8d3to06aff081f806aff081f8toa6471fa066a6471fa066tod142d7eef4d142d7eef4to3bfce7a7b73bfce7a7b7toc18cb14fbec18cb14fbeto02a780636b02a780636bto07699d3fc007699d3fc0to5671ea77e55671ea77e5toc156ce9707c156ce9707to44c6de476444c6de4764toc8d3093ce8c8d3093ce8to080bfb1230080bfb1230to394dec9f00394dec9f00to82ae73ae3e82ae73ae3eto266fff9037266fff9037to17cc26b5cf17cc26b5cfto411f02770b411f02770bto61f77fd45361f77fd453to8650a8addb8650a8addbtof235fbe621f235fbe621toe7bbcf0274e7bbcf0274to179ff4f05e179ff4f05etoa0d49ad103a0d49ad103to6e9bd6f6ec6e9bd6f6ecto67565ac4fc67565ac4fctof371650aaef371650aaeto6adcd7614d6adcd7614dto35effc948b35effc948bto308cf419e4308cf419e4to8e265de5408e265de540to39fa48713739fa487137to2e8f947d7b2e8f947d7bto2d63e7a9572d63e7a957to8fdb3b6a388fdb3b6a38to412d7e50dc412d7e50dcto34655127f734655127f7toaed4013d54aed4013d54tob0cb9e1e2ab0cb9e1e2atoa117b65827a117b65827to4d96995fea4d96995feato77f53be69477f53be694to8659e1737c8659e1737cto55441692395544169239to4c06c894a34c06c894a3toe3e7931351e3e7931351tod2e86c02bbd2e86c02bbtof118a42258f118a42258to876fe034d4876fe034d4toc124798b12c124798b12to864de555dc864de555dcto5ed117404b5ed117404bto01d1f0ded101d1f0ded1tobbb8d5a2ecbbb8d5a2ectofabe33b383fabe33b383to38edb74eea38edb74eeatob65c425d37b65c425d37tobead617f0bbead617f0bto9ef5229eb99ef5229eb9to26d088ee2326d088ee23to624ba472d8624ba472d8toac32cec206ac32cec206to28b343dd4128b343dd41to8fbc917a3b8fbc917a3btof8b42be4a2f8b42be4a2to9f29e414a29f29e414a2tob1fa3e3e35b1fa3e3e35to9430c415829430c41582toa028e16728a028e16728todb16112291db16112291to988029f403988029f403to94729511459472951145to02e78fe09602e78fe096to0d04c4ac2a0d04c4ac2atodf56b4744edf56b4744etoff6c4beb70ff6c4beb70toc0cd7269ffc0cd7269fftob3adf6feb1b3adf6feb1toc8e493c45bc8e493c45bto6e5e837f8e6e5e837f8eto951c793124951c793124toee3ba75bb4ee3ba75bb4to3073c74bd43073c74bd4tod8b415ff36d8b415ff36toc578c52006c578c52006to0fc429e0ed0fc429e0edto7e3580aff77e3580aff7to5cbcbfa34b5cbcbfa34bto69295516046929551604to70cfde589670cfde5896to11696ce19811696ce198to9b3f16534a9b3f16534ato5070c7ae445070c7ae44to058517bc16058517bc16todb46aa5372db46aa5372to106056dd38106056dd38tobc209310eebc209310eetofb20e0a030fb20e0a030to8e610c933a8e610c933ato7d76c2736f7d76c2736fto6c8e2f034e6c8e2f034eto5a908283825a90828382to2bd51b09f12bd51b09f1to8116cc40c98116cc40c9to4a586025224a58602522to06e9feb76c06e9feb76cto1ffdc78f191ffdc78f19to78f1f5a19478f1f5a194to5374d7f8925374d7f892toe5c69e324de5c69e324dto7177c6f4f47177c6f4f4toebcb2799e1ebcb2799e1to37ccb1be7637ccb1be76toedab1fb01bedab1fb01btod05aa85134d05aa85134to25913ac1a025913ac1a0to0bb63a14fa0bb63a14fato54a2be75b954a2be75b9to07117540970711754097to8001e3f7608001e3f760tobbf53ae08dbbf53ae08dto1526e433381526e43338tof610b5549ff610b5549fto32f02ea4b932f02ea4b9to32ee243dc532ee243dc5tod4f07de66dd4f07de66dtoe0b86ccc4ae0b86ccc4atoa695914d57a695914d57toea93f1b48eea93f1b48eto8227cba3398227cba339toe6b4e5394de6b4e5394dto0fc1f89f2d0fc1f89f2dto51edb788e951edb788e9to94718bb43e94718bb43etof43a5afc9ef43a5afc9eto5bd0a732c35bd0a732c3toca492b7a86ca492b7a86to6e862086be6e862086beto6a2aaf3c9e6a2aaf3c9etoba83e191b6ba83e191b6toe8bc1d1f76e8bc1d1f76to20bd408acf20bd408acfto3c4dc71c2a3c4dc71c2ato4465d652ab4465d652abtofbfb220514fbfb220514to4dd72c4ddd4dd72c4dddto9947153f639947153f63toa6c73d2d07a6c73d2d07to5e0777483f5e0777483ftoe40506b343e40506b343todaa6ee79b6daa6ee79b6toff20a213e3ff20a213e3toab422452c8ab422452c8to352a8cfbcf352a8cfbcftoda4dcdce3dda4dcdce3dto29eb3b57b629eb3b57b6to92e4f8fd6f92e4f8fd6fto3982debd7e3982debd7eto6735cf47016735cf4701tofaa0c34621faa0c34621toabd3c755d8abd3c755d8tof0367fed7df0367fed7dto8bbbe067038bbbe06703tob6e463a5adb6e463a5adto6cf6a064616cf6a06461tof8b7d8e65af8b7d8e65ato9135fc86369135fc8636tod6c13dd8e3d6c13dd8e3to37f79129c237f79129c2to26b9c0204926b9c02049to9f4d14bd6b9f4d14bd6btod5478ca76ad5478ca76atof5000c7bbef5000c7bbeto193a5f1597193a5f1597to7d5632b5b87d5632b5b8to593b16e40e593b16e40eto44d8fd7af444d8fd7af4to44745d7dd044745d7dd0to09f3c59bef09f3c59beftoe05d465132e05d465132tod824646702d824646702to86866b863986866b8639to295c13b639295c13b639to23ef959ba223ef959ba2to5ef03294605ef0329460to164c5e3bf8164c5e3bf8to60c3e3340260c3e33402tode83693667de83693667to91bce939b791bce939b7to1592c402181592c40218to0e0649a6850e0649a685tof08681a33bf08681a33bto57ff9e78ff57ff9e78fftoa2c3414b96a2c3414b96todbeb05bf5cdbeb05bf5cto62824f0a9e62824f0a9etoced7a9718fced7a9718ftob6e5290bf6b6e5290bf6to845d5854fa845d5854fato2189859e612189859e61toe31891ef1ae31891ef1atoe120460a99e120460a99to8c68baa6718c68baa671to2db3eb36bc2db3eb36bcto2489153c942489153c94to0e10e636080e10e63608toa2f3d03a37a2f3d03a37to0ad42274b30ad42274b3to5e8bad89f65e8bad89f6to1664a6e67d1664a6e67dto42f20a842042f20a8420to22f61e04e922f61e04e9tob81c0d5477b81c0d5477toce2fb3b1cdce2fb3b1cdtod95be29c52d95be29c52to19c054033219c0540332to493c76aba8493c76aba8to9a7b8621379a7b862137to89c3c2a5bc89c3c2a5bctod1255ba22ad1255ba22atoc6d458aca8c6d458aca8to6a31ef6b816a31ef6b81to633f3231e6633f3231e6to465fe719d2465fe719d2tof4de58819cf4de58819ctoa9dbcc4855a9dbcc4855to73f61e9a7673f61e9a76tof397836f9ef397836f9eto0cb37c92760cb37c9276toc71f2d5e50c71f2d5e50to7a3c8bab5c7a3c8bab5cto1fef5d8dd01fef5d8dd0to44fde910d544fde910d5to5f037f25d95f037f25d9to5076eda5155076eda515to2caefe1af42caefe1af4tod7d65c08abd7d65c08abto9866d436739866d43673todd2be962e5dd2be962e5to8c9167ba2d8c9167ba2dtoc1131d0130c1131d0130tob14dccdf8bb14dccdf8btob44efdcf60b44efdcf60to90ec2174ed90ec2174edtoe62fa8913ee62fa8913eto92befaa76192befaa761tob689f17b53b689f17b53to0e4e42dca90e4e42dca9to596ad1685c596ad1685ctod0d0e4c829d0d0e4c829tod5c1bee2b4d5c1bee2b4to88dd432c6988dd432c69to51114b6e5f51114b6e5fto23bb11c6fc23bb11c6fcto924495b037924495b037to0b003aec720b003aec72toac1bcade9aac1bcade9ato2ae22049802ae2204980tof3390ffe08f3390ffe08to107dd6355d107dd6355dtocdc0585f44cdc0585f44to024efcf710024efcf710tob7e783064fb7e783064fto87a043c4ac87a043c4acto630ec926ac630ec926actod92c2078cfd92c2078cfto3ce21e2cbb3ce21e2cbbtoc5a735d135c5a735d135tob54eecfb1ab54eecfb1atocb2959863fcb2959863fto43e055b2c243e055b2c2to82cc12a22b82cc12a22bto3dc15c6af83dc15c6af8toeb785c5be2eb785c5be2to143d818453143d818453to250bde9837250bde9837to78150deb2278150deb22to4dd094cacf4dd094cacfto15154228001515422800to030624be4d030624be4dto78717875c578717875c5to1bebda5f4d1bebda5f4dtof39326aa5df39326aa5dtoe0afdb8714e0afdb8714tod4c37c6952d4c37c6952tof47a917d2ef47a917d2eto384156b87a384156b87ato9fe34ab3179fe34ab317toa81ee92d5da81ee92d5dto6b193985056b19398505to79a393a2eb79a393a2ebto0c4a0d03940c4a0d0394to3f601c735b3f601c735bto0c285be5340c285be534tode60de1eb1de60de1eb1to243f238e29243f238e29to8cedeb96398cedeb9639to1d92293f4d1d92293f4dto4002b24a884002b24a88tobb296fc42bbb296fc42btoa8d12d68d1a8d12d68d1to87883de51a87883de51ato938fe3701f938fe3701fto3dc2d366be3dc2d366beto566ad535c8566ad535c8tode8d1a4601de8d1a4601to7381bf91267381bf9126to6abc2efd0d6abc2efd0dto91250f1f6a91250f1f6ato8845225c158845225c15to5b48663b7b5b48663b7bto9c47270d5e9c47270d5eto49f9067fd849f9067fd8to8bbe9bdcc18bbe9bdcc1to580fb3de61580fb3de61to1a1b1372ad1a1b1372adtobe5e882a18be5e882a18toccdcdfd6d9ccdcdfd6d9toe7de843b95e7de843b95toa1f98ae664a1f98ae664to642ff6aefe642ff6aefeto6af7a3982c6af7a3982ctoc7c4f5b17fc7c4f5b17fto2d224641252d22464125to6c7a970e526c7a970e52tofed7011bedfed7011bedtoba7b05d9a2ba7b05d9a2tocff69fd7edcff69fd7edtode307ad68fde307ad68ftoc3511d92d7c3511d92d7toc81ca69fd2c81ca69fd2tof12b0a63dff12b0a63dftoefd3cb7d77efd3cb7d77to4775b2763e4775b2763etob051d236b6b051d236b6toc5be8282d4c5be8282d4to07cba16b7007cba16b70to3d0043a0883d0043a088to8688ff4c738688ff4c73tob05c7eca1ab05c7eca1ato6fef8114b96fef8114b9to15bfb0b24b15bfb0b24btof62f6ed103f62f6ed103to10a123c20f10a123c20fto4e977dcb2e4e977dcb2eto994f9f547f994f9f547fto1b72be2b531b72be2b53to01f5bb089001f5bb0890to5658f7b7da5658f7b7datob1bb1aa1d1b1bb1aa1d1tobd3e225e0fbd3e225e0ftobe0f2af3dcbe0f2af3dcto35a72ef49f35a72ef49fto120a42f9c7120a42f9c7to056a7dcb88056a7dcb88to57a7db3c0f57a7db3c0fto4ce507d3b14ce507d3b1to2b68acc9182b68acc918toc21fe8dab7c21fe8dab7to3835e6f8033835e6f803toc397dc2088c397dc2088to470005b091470005b091to65730f26ca65730f26cato400743e140400743e140to082307fe59082307fe59to135cb5deb0135cb5deb0to259785e708259785e708toc9d92ac9c3c9d92ac9c3to3d272411773d27241177to0490c90fc70490c90fc7to0abf2848c60abf2848c6to86b5b20a5586b5b20a55toc59c00c038c59c00c038to7aaecee4cb7aaecee4cbto620287e726620287e726to7360b555fa7360b555fatod1d6a7bf06d1d6a7bf06tof527dd7bacf527dd7bactoeee51919b1eee51919b1toa546404ce5a546404ce5toc4c6949364View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.