PackageTrack
Sign in Get early access

arrayvec

A vector with fixed capacity, backed by an array (it can be stored on the stack too). Implements fixed capacity ArrayVec and ArrayString.

0.7.8 523M downloads/mo #196 most downloaded on crates.io bluss/arrayvec

What this package is like to depend on

Last release 1 months ago

02 Jul 2026

Release timing varies

gaps range from 2 weeks to 1.8 years

Some releases are documented

notes for 15 of 57 stable releases

Nothing withdrawn

no release was ever pulled

11 years old

57 releases · first in 2015

2 releases in the last 12 months

see the full history below

Release timeline

57 releases · May 2015 to Jul 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 57
  1. 0.7.8 02 Jul 2026
    Release notes
    Open source →
  2. 0.7.7 20 Jun 2026
    Release notes
    Open source →
  3. 0.7.6 17 Aug 2024
    Release notes
    • Fix no-std build #274
    Open source →
    Release notes
    • Fix no-std build #274
    Open source →
  4. 0.7.5 17 Aug 2024
    Release notes
    Open source →
    Release notes
    • Add as_ptr and as_mut_ptr to ArrayString @YuhanLiin #260
    • Add borsh serialization support by @honzasp and @Fuuzetsu #259
    • Move length field before before data in ArrayVec and ArrayString by @JakkuSakura #255
    • Fix miri error for ZST case in extend by @bluss
    • implement AsRef<Path> for ArrayString by @Zoybean #218
    • Fix typos in changelog by @striezel #241
    • Add as_slice, as_mut_slice methods to IntoIter by @clarfonthey #224
    Open source →
  5. 0.7.4 17 Jun 2023
    Release notes
    • Add feature zeroize to support the Zeroize trait by @elichai
    Open source →
  6. 0.7.3 12 Jun 2023
    Release notes
    • Use track_caller on multiple methods like push and similar, for capacity overflows by @kornelski
    • impl BorrowMut for ArrayString by @msrd0
    • Fix stacked borrows violations by @clubby789
    • Update Miri CI by @RalfJung
    Open source →
  7. 0.7.2 28 Oct 2021
    Release notes
    • Add .as_mut_str() to ArrayString by @clarfonthey
    • Add remaining_capacity to ArrayString by @bhgomes
    • Add zero_filled constructor by @c410-f3r
    • Optimize retain by @TennyZhuang and @niklasf
    • Make the following methods const by @bhgomes:
      • len
      • is_empty
      • capacity
      • is_full
      • remaining_capacity
      • CapacityError::new
    Open source →
  8. 0.7.1 05 Jun 2021
    Release notes
    • Add new ArrayVec methods .take() and .into_inner_unchecked() by @conradludgate
    • clone_from now uses truncate when needed by @a1phyr
    Open source →
  9. 0.7.0 29 Mar 2021
    Release notes
    • fn new_const is now the way to const-construct arrayvec and arraystring, and fn new has been reverted to a regular "non-const" function. This works around performance issue #182, where the const fn version did not optimize well. Change by @bluss with thanks to @rodrimati1992 and @niklasf for analyzing the problem.

    • The deprecated feature flag unstable-const-fn was removed, since it's not needed

    • Optimize .retain() by using the same algorithm as in std, change by @niklasf, issue #174. Original optimization in Rust std by @oxalica in rust-lang/rust/pull/81126

    Open source →
  10. 0.6.1 29 Mar 2021
    Release notes
    • The ArrayVec::new and ArrayString::new constructors are properly const fns on stable and the feature flag unstable-const-fn is now deprecated. by @rodrimati1992

    • Small fix to the capacity check macro by @Xaeroxe

    • Typo fix in documentation by @cuviper

    • Small code cleanup by @bluss

    Open source →
  11. 0.6.0 24 Mar 2021
    Release notes
    • The const generics release 🎉. Arrayvec finally implements what it wanted to implement, since its first version: a vector backed by an array, with generic parameters for the arbitrary element type and backing array capacity.

      The New type syntax is ArrayVec<T, CAP> where CAP is the arrayvec capacity. For arraystring the syntax is ArrayString<CAP>.

      Length is stored internally as u32; this limits the maximum capacity. The size of the ArrayVec or ArrayString structs for the same capacity may grow slightly compared with the previous version (depending on padding requirements for the element type). Change by @bluss.

    • Arrayvec's .extend() and FromIterator/.collect() to arrayvec now panic if the capacity of the arrayvec is exceeded. Change by @bluss.

    • Arraystring now implements TryFrom<&str> and TryFrom<fmt::Arguments> by @c410-f3r

    • Minimum supported rust version is Rust 1.51

    Open source →
  12. 0.5.2 23 Oct 2020
    Release notes
    • Add is_empty methods for ArrayVec and ArrayString by @nicbn
    • Implement TryFrom<Slice> for ArrayVec by @paulkernfeld
    • Add unstable-const-fn to make new methods const by @m-ou-se
    • Run miri in CI and a few related fixes by @RalfJung
    • Fix outdated comment by @Phlosioneer
    • Move changelog to a separate file by @Luro02
    • Remove deprecated Error::description by @AnderEnder
    • Use pointer method add by @hbina
    Open source →
  13. 0.5.1 09 Oct 2019
    Release notes
    • Add as_ptr, as_mut_ptr accessors directly on the ArrayVec by @tbu- (matches the same addition to Vec which happened in Rust 1.37).
    • Add method ArrayString::len (now available directly, not just through deref to str).
    • Use raw pointers instead of &mut [u8] for encoding chars into ArrayString (uninit best practice fix).
    • Use raw pointers instead of get_unchecked_mut where the target may be uninitialized everywhere relevant in the ArrayVec implementation (uninit best practice fix).
    • Changed inline hints on many methods, mainly removing inline hints
    • ArrayVec::dispose is now deprecated (it has no purpose anymore)
    Open source →
  14. 0.5.0 25 Sep 2019
    Release notes
    • Use MaybeUninit (now unconditionally) in the implementation of ArrayVec
    • Use MaybeUninit (now unconditionally) in the implementation of ArrayString
    • The crate feature for serde serialization is now named serde.
    • Updated the Array trait interface, and it is now easier to use for users outside the crate.
    • Add FromStr impl for ArrayString by @despawnerer
    • Add method try_extend_from_slice to ArrayVec, which is always efficient by @Thomasdezeeuw.
    • Add method remaining_capacity by @Thomasdezeeuw
    • Improve performance of the extend method.
    • The index type of zero capacity vectors is now itself zero size, by @clarfon
    • Use drop_in_place for truncate and clear methods. This affects drop order and resume from panic during drop.
    • Use Rust 2018 edition for the implementation
    • Require Rust 1.36 or later, for the unconditional MaybeUninit improvements.
    Open source →
  15. 0.4.12 09 Oct 2019
    Release notes
    • Use raw pointers instead of get_unchecked_mut where the target may be uninitialized everywhere relevant in the ArrayVec implementation.
    Open source →
  16. 0.4.11 10 Jul 2019

    Nothing published for this version

  17. 0.4.10 22 Dec 2018

    Nothing published for this version

  18. 0.4.9 16 Dec 2018

    Nothing published for this version

  19. 0.4.8 25 Nov 2018

    Nothing published for this version

  20. 0.4.7 17 Jan 2018

    Nothing published for this version

  21. 0.4.6 04 Nov 2017

    Nothing published for this version

  22. 0.4.5 27 Oct 2017

    Nothing published for this version

  23. 0.4.4 21 Oct 2017

    Nothing published for this version

  24. 0.4.3 16 Oct 2017

    Nothing published for this version

  25. 0.4.2 24 Sep 2017

    Nothing published for this version

  26. 0.4.1 11 Sep 2017

    Nothing published for this version

  27. 0.4.0 08 Aug 2017

    Nothing published for this version

  28. 0.3.25 17 Jan 2018

    Nothing published for this version

  29. 0.3.24 04 Nov 2017

    Nothing published for this version

  30. 0.3.23 23 Apr 2017

    Nothing published for this version

  31. 0.3.22 25 Mar 2017

    Nothing published for this version

  32. 0.3.21 17 Mar 2017

    Nothing published for this version

  33. 0.3.20 04 Oct 2016

    Nothing published for this version

  34. 0.3.19 28 Sep 2016

    Nothing published for this version

  35. 0.3.18 21 Sep 2016

    Nothing published for this version

  36. 0.3.17 08 Sep 2016

    Nothing published for this version

  37. 0.3.16 29 Feb 2016

    Nothing published for this version

  38. 0.3.15 06 Feb 2016

    Nothing published for this version

  39. 0.3.14 06 Feb 2016

    Nothing published for this version

  40. 0.3.13 13 Jan 2016

    Nothing published for this version

  41. 0.3.12 20 Sep 2015

    Nothing published for this version

  42. 0.3.11 10 Sep 2015

    Nothing published for this version

  43. 0.3.10 21 Aug 2015

    Nothing published for this version

  44. 0.3.9 30 Jul 2015

    Nothing published for this version

  45. 0.3.8 30 Jul 2015

    Nothing published for this version

  46. 0.3.7 22 Jun 2015

    Nothing published for this version

  47. 0.3.6 14 Jun 2015

    Nothing published for this version

  48. 0.3.5 02 Jun 2015

    Nothing published for this version

  49. 0.3.4 25 May 2015

    Nothing published for this version

  50. 0.3.3 23 May 2015

    Nothing published for this version

  51. 0.3.2 22 May 2015

    Nothing published for this version

  52. 0.3.1 22 May 2015

    Nothing published for this version

  53. 0.3.0 22 May 2015

    Nothing published for this version

  54. 0.2.0 21 May 2015

    Nothing published for this version

  55. 0.1.2 20 May 2015

    Nothing published for this version

  56. 0.1.1 19 May 2015

    Nothing published for this version

  57. 0.1.0 19 May 2015

    Nothing published for this version

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