PackageTrack
Sign in Get early access

fixed

Fixed-point numbers.

1.31.0 14M downloads/mo #2621 most downloaded on crates.io source

What this package is like to depend on

Last release 5 months ago

20 Mar 2026

Release timing varies

gaps range from 2 weeks to 11 months

Nearly every release is documented

notes for 65 of 67 stable releases

16 versions withdrawn

withdrawn after publishing

8 years old

84 releases · first in 2018

2 releases in the last 12 months

see the full history below

Release timeline

84 releases · Aug 2018 to Mar 2026
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 84
  1. 2.0.0-alpha.28.0 25 Jul 2024 pre-release

    Nothing published for this version

  2. 2.0.0-alpha.27.0 27 Mar 2024 pre-release withdrawn

    Nothing published for this version

  3. 2.0.0-alpha.26.0 06 Mar 2024 pre-release withdrawn

    Nothing published for this version

  4. 2.0.0-alpha.25.1 06 Feb 2024 pre-release withdrawn

    Nothing published for this version

  5. 2.0.0-alpha.13 05 Feb 2024 pre-release withdrawn

    Nothing published for this version

  6. 2.0.0-alpha.12 19 Sep 2023 pre-release withdrawn

    Nothing published for this version

  7. 2.0.0-alpha.11 14 Mar 2023 pre-release withdrawn

    Nothing published for this version

  8. 2.0.0-alpha.10 06 Feb 2023 pre-release withdrawn

    Nothing published for this version

  9. 2.0.0-alpha.9 25 Jan 2023 pre-release withdrawn

    Nothing published for this version

  10. 2.0.0-alpha.8 24 Dec 2022 pre-release withdrawn

    Nothing published for this version

  11. 2.0.0-alpha.7 08 Nov 2022 pre-release withdrawn

    Nothing published for this version

  12. 2.0.0-alpha.6 29 Aug 2022 pre-release withdrawn

    Nothing published for this version

  13. 2.0.0-alpha.5 19 Aug 2022 pre-release withdrawn

    Nothing published for this version

  14. 2.0.0-alpha.4 03 Aug 2022 pre-release withdrawn

    Nothing published for this version

  15. 2.0.0-alpha.3 25 Jul 2022 pre-release withdrawn

    Nothing published for this version

  16. 2.0.0-alpha.2 04 Mar 2022 pre-release withdrawn

    Nothing published for this version

  17. 2.0.0-alpha.1 26 Feb 2022 pre-release withdrawn

    Nothing published for this version

  18. 1.31.0 20 Mar 2026
    Release notes
    Open source →
  19. 1.30.0 20 Jan 2026
    Release notes
    • The crate now requires rustc version 1.85.0 or later.
      • All methods starting with unwrapped_ were renamed to start with strict_. The old method names are deprecated.
      • The Unwrapped wrapper was renamed to Strict. The old name is deprecated.
      • Bug fix: the compat-readonly-static optional feature was added to fix an issue on some platforms where statics are readonly (issue 74, merge request 14).
      • Bug fix: some numbers were being formatted incorrectly when using a defined precision (merge request 15).
      • The [az crate] dependency was updated to version 1.3.
      • The new defmt optional feature was added to support logging using the [defmt crate] (issue 70).
      • For the experimental feature num-traits, the following traits were implemented for all fixed-point numbers:
    Open source →
  20. 1.29.0 26 Feb 2025
    Release notes
    Open source →
  21. 1.28.0 25 Jul 2024
    Release notes
    Open source →
  22. 1.27.0 27 Mar 2024
    Release notes
    Open source →
  23. 1.26.0 06 Mar 2024
    Release notes
    Open source →
  24. 1.25.1 06 Feb 2024
    Release notes
    • Bug fix: formatting numbers with [LowerExp] and [UpperExp] was producing incorrect output when rounding incremented a zero in the middle of a string, for example format!("{:.2e}", I16F16::lit("9.099")).
    Open source →
  25. 1.25.0 05 Feb 2024
    Release notes
    • Bug fix: formatting numbers with [LowerExp] and [UpperExp] was producing incorrect output for very small numbers, for example format!("{:e}", I16F16::DELTA).
      • Bug fix: formatting numbers with [LowerExp] and [UpperExp] was panicking for some cases of positive exponents and small precision, for example format!("{:.1e}", I16F16::from_num(1001)).
      • Bug fix: formatting numbers with [LowerExp] and [UpperExp] was producing incorrect output when rounding adds a more significant digit, for example format!("{:.1e}", I16F16::lit("0.999")).
      • The experimental borsh feature was promoted to an optional feature, and the optional [borsh crate] dependency was updated to version 1.0.
    Open source →
  26. 1.24.0 19 Sep 2023
    Release notes
    • The crate now requires rustc version 1.71.0 or later.
    Open source →
  27. 1.23.1 14 Mar 2023
    Release notes
    • Bug fix: comparison of signed and unsigned numbers where the signed number was wider than the unsigned number was truncating bits from the signed number (issue 57).
      • The [half crate] dependency is now satisfied by version 1.8 as well as [version 2][half-2].
    Open source →
  28. 1.23.0 06 Feb 2023
    Release notes
    • String parsing of binary, octal and hexadecimal strings now supports base-2 exponents starting with the separator “p” or “P”.
    Open source →
  29. 1.22.1 26 Jan 2023
    Release notes
    • The errors from the [lit][f-l-1-22] method have been improved.
      • The track_caller attribute is now applied to many more inline functions that can panic.
    Open source →
  30. 1.22.0 25 Jan 2023
    Release notes
    • String parsing now supports an optional exponent for all supported radices.
      • The lit method was added to all fixed-point numbers. This is useful to write fixed-point numbers literally in code and also works in constant context.
      • All fixed-point numbers now implement [LowerExp] and [UpperExp].
      • The Fixed and FixedBits traits now have the added supertraits [Binary], [Octal], [LowerHex], [UpperHex], [LowerExp] and [UpperExp].
      • The Wrapping and Unwrapped wrappers now implement [Binary], [Octal], [LowerHex], [UpperHex], [LowerExp] and [UpperExp].
      • The implementation of [Debug] for fixed-point numbers now has more relaxed constraints on the fractional bits generic parameter: now Frac only needs to implement Unsigned.
    Open source →
  31. 1.21.0 24 Dec 2022
    Release notes
    • Comparisons involving fixed-point numbers now have more relaxed constraints on the fractional bits generic parameter: now Frac only needs to implement Unsigned.
      • Better code should now be generated when comparing a fixed-point number to another fixed-point number.
      • The following methods were added to the F128 struct:
    Open source →
  32. 1.20.0 08 Nov 2022
    Release notes
    Open source →
  33. 1.19.0 29 Aug 2022
    Release notes
    • Bug fix: comparison of and conversion from subnormal floating-point numbers to fixed-point numbers were off by a factor of 2.
    Open source →
  34. 1.18.0 19 Aug 2022
    Release notes
    • Bug fix: checked division methods were panicking when dividing MIN by <code>-DELTA</code> for fixed-point numbers with zero integer bits, that is when all bits are fractional bits (issue 51).
      • The following methods were added to all fixed-point numbers, to the Fixed trait, and to the Wrapping and Unwrapped wrappers:
      • The F128 struct was added to replace the F128Bits struct which is now deprecated. F128 has standard floating-point ordering and various classification methods and associated constants.
      • The from_str_dec method was added to the Unwrapped wrapper.
      • The Contiguous trait from the [bytemuck crate] was implemented for all fixed-point numbers, added as a supertrait to the Fixed trait, and implemented for the Wrapping and Unwrapped wrappers.
    Open source →
  35. 1.17.0 03 Aug 2022
    Release notes
    Open source →
  36. 1.16.1 22 Jul 2022
    Release notes
    • Cargo.toml now includes the [rust-version] field ([merge request 11]).
    Open source →
  37. 1.16.0 30 Jun 2022
    Release notes Open source →
  38. 1.15.0 28 Apr 2022
    Release notes
    Open source →
  39. 1.14.0 20 Mar 2022
    Release notes
    Open source →
  40. 1.13.1 04 Mar 2022
    Release notes
    • The [const_fixed_from_int][cffi-1-13] macro now accepts a visibility qualifier ([merge request 10]).
    Open source →
  41. 1.13.0 22 Feb 2022
    Release notes
    • The [AddAssign], [SubAssign], [MulAssign], [DivAssign], [RemAssign], [BitAndAssign], [BitOrAssign] and [BitXorAssign] traits for <code>Wrapping<F></code> and <code>Unwrapped<F></code> are now also implemented with F as the type of the right-hand side operand.
      • Bug fix: compilation with certain flags was hanging for the thumbv6m target because of a rustc/LLVM issue. This version should not trigger the rustc/LLVM issue (issue 45).
    Open source →
  42. 1.12.0 04 Feb 2022
    Release notes
    Open source →
  43. 1.11.0 24 Nov 2021
    Release notes
    Open source →
  44. 1.10.0 23 Aug 2021
    Release notes
    • The crate now requires rustc version 1.53.0 or later.
      • <code>{[Div][Div],[DivAssign][DivAssign],[Rem][Rem],[RemAssign][RemAssign]}<[NonZeroU32][NonZeroU32]></code> are now implemented for FixedU32, and similar for all other unsigned fixed-point numbers.
      • <code>{[Rem][Rem],[RemAssign][RemAssign]}<[NonZeroI32][NonZeroI32]></code> are now implemented for FixedI32, and similar for all other signed fixed-point numbers.
      • The new arbitrary optional feature was added to implement the Arbitrary trait provided by the [arbitrary crate] for all fixed-point numbers (issue 37).
    Open source →
  45. 1.9.0 13 May 2021
    Release notes

    Compatibility notes

    • Now the [Debug] implementation for Wrapping outputs the value only without “Wrapping()”, and the [Debug] implementation for Unwrapped outputs the value only without “Unwrapped()”.
    • The LeEqU8, LeEqU16, LeEqU32, LeEqU64 and LeEqU128 traits now have a 'static constraint. This should have no practical side effects, since these traits are a convenience feature and already have the Unsigned marker trait as a supertrait, and the types that implement Unsigned are 'static.
    • The FixedOptionalFeatures trait was not sealed, which was as an oversight. Now it is sealed, and the documentation explicitly states that the trait should not be used directly.
    Open source →
  46. 1.8.0 20 Apr 2021
    Release notes
    Open source →
  47. 1.7.0 25 Mar 2021
    Release notes
    Open source →
  48. 1.6.0 05 Feb 2021
    Release notes
    Open source →
  49. 1.5.0 05 Nov 2020
    Release notes
    • The wide_mul method was added to all fixed-point numbers up to 64 bits wide (issue 25).
      • Unwrapped methods for arithmetic together with the Unwrapped wrapper were added. Unwrapped methods panic on overflow, even when debug assertions are disabled, similar to how wrapping methods will wrap around even when debug assertions are enabled. (This was previously an experimental feature unwrapped.)
      • The serde-str feature was added. (This was previously an experimental feature.)
      • For the experimental feature num-traits, some missing supertraits were added to FixedOptionalFeatures.
      • Bug fix: multiplication of FixedI128 was panicking when multiplying some large negative numbers (issue 26).
    Open source →
  50. 1.4.0 22 Oct 2020
    Release notes
    Open source →
  51. 1.3.0 15 Oct 2020
    Release notes
    • The [MulAssign] implementation on fixed-point numbers now accepts an rhs fixed-point number with a different number of fractional bits from self.
    Open source →
  52. 1.2.0 02 Sep 2020
    Release notes
    Open source →
  53. 1.1.0 21 Jul 2020
    Release notes
    Open source →
  54. 1.0.0 04 Jun 2020
    Release notes
    Open source →
  55. 0.5.7 11 May 2020
    Release notes
    • The LosslessTryFrom and LosslessTryInto traits were added.
      • The following methods were added to all fixed-point types, to the Fixed trait, and to the Wrapping wrapper:
        • leading_ones, trailing_ones
      • The following method was added to unsigned fixed-point types and to the FixedUnsigned trait:
        • wrapping_next_power_of_two
      • The PHI and FRAC_1_PHI constants were added to the consts module and as associated constants to fixed-point types.
    Open source →
  56. 0.5.6 01 May 2020
    Release notes
    • The following methods were added to signed fixed-point types and to the FixedSigned trait: * checked_signum, saturating_signum, wrapping_signum, overflowing_signum
      • The LossyFrom and LossyInto traits were added to the prelude.
      • Casts deprecated in version 0.3.1 of the az crate were marked as deprecated.
    Open source →
  57. 0.5.5 16 Apr 2020
    Release notes
    • Bug fix: an incorrect result could be given when comparing a signed fixed-point number of type FixedI to a number that would overflow by exactly one bit when converting to FixedI.
      • The following associated constants were added to all fixed-point types, to the Fixed trait, and to the Wrapping wrapper:
        • MIN, MAX
      • The following associated constants were added to the Fixed trait and to the Wrapping wrapper:
        • INT_NBITS, FRAC_NBITS
      • The following methods were added to all fixed-point types and to the Fixed trait:
        • int_log2, int_log10
        • checked_int_log2, checked_int_log10
      • The following methods were added to the Wrapping wrapper:
        • int_log2, int_log10
      • The constants in the consts module were also added as associated constants to fixed-point types that can represent them.
      • The following methods were deprecated:
        • min_value, max_value
        • int_nbits, frac_nbits
    Open source →
  58. 0.5.4 21 Feb 2020
    Release notes
    • Bug fix: rem_euclid_int and its checked versions were handling overflow incorrectly.
    Open source →
  59. 0.5.3 13 Feb 2020
    Release notes
    • Bug fix: round_to_zero was returning incorrect results for negative whole number operands.
      • Bug fix: all remainder operations with a fixed-point LHS and an integer RHS were giving an incorrect answer (https://gitlab.com/tspiteri/fixed/issues/13).
      • Bug fix: Euclidean division operations by integers were giving an incorrect answer.
      • Rem and RemAssign were implemented for fixed-point numbers.
      • The following methods were added to all fixed-point types and to the Fixed trait:
        • checked_rem
        • div_euclid, rem_euclid
        • checked_div_euclid, checked_rem_euclid
        • saturating_div_euclid
        • wrapping_div_euclid
        • overflowing_div_euclid
      • The following methods were added to the Wrapping wrapper:
        • div_euclid, rem_euclid
        • div_euclid_int, rem_euclid_int
      • The following methods were deprecated:
        • wrapping_rem_int, overflowing_rem_int
    Open source →
  60. 0.5.2 02 Feb 2020
    Release notes
    • Wrapping now supports serialization. (Thanks: Shane Pearman)
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive