ecow
Compact, clone-on-write vector and string.
0.3.0
5.6M downloads/mo
#4288 most downloaded on crates.io
typst/ecow
What this package is like to depend on
Last release 2 months ago
26 May 2026
Release timing varies
gaps range from 2 weeks to 10 months
Most releases are documented
notes for 9 of 11 stable releases
1 version withdrawn
withdrawn after publishing
3 years old
12 releases · first in 2023
2 releases in the last 12 months
see the full history below
Release timeline
12 releases · Mar 2023 to May 2026Releases
latest 12-
0.3.026 May 2026Release notes
Open source →- Added
EcoString::{insert, insert_str, remove}methods - Added
EcoVec::{drain, splice}methods - Added
ToEcoStringtrait for conveniently converting something that implementsDisplayto anEcoString - Added
AsRef<[u8]>,AsRef<OsStr>, andAsRef<Path>impls forEcoString(thanks to @tingerrr) - Added
FromIterator<&str>andExtend<&str>impls forEcoString(thanks to @pedrodesu) - Optimized
EcoVec::reservein the case it is non-unique (thanks to @ndren) - Added
#[clippy::format_args]toeco_formatmacro so thateco_format!calls are linted by clippy (thanks to @isuffix)
This is a re-release of v0.2.7 which has been yanked. See #63 for more information.
- Added
-
0.2.725 May 2026 withdrawnRelease notes
Open source →This release has been yanked, use v0.3.0 instead. See #63 for more information.
-
0.2.604 Aug 2025Release notes
Open source →- The conversion
From<Vec<T>>forEcoVec<T>was optimized. It still has to allocate new storage, but copies all items in a single batch now (thanks to @bergkvist).
- The conversion
-
0.2.524 Apr 2025 -
0.2.407 Apr 2025 -
0.2.330 Oct 2024Release notes
Open source →- Added
From<&EcoString> for EcoString(thanks to @idlercloud) - Added
TryFrom<EcoVec<T>>for[T; N](thanks to @kaikalii) - EcoString capacity now grows by 2x instead of +1 when spilling (16 -> 32 instead of 16 -> 17). When already spilled it already did 2x growth before.
- Added
-
0.2.223 Mar 2024 -
0.2.106 Mar 2024Release notes
Open source →- Added
From<&String> for EcoString(thanks to @IanManske) - Improved internal pointer handling
- Added
-
0.2.009 Oct 2023Release notes
Open source →- Added
EcoString::make_mutfor getting an&mut str - Added
EcoString::{replace, replacen, to_ascii_lowercase, to_ascii_uppercase}which perform the respective operation and return anEcoStringinstead of aString. (Breaking change) - Added missing
#[inline]annotation (thanks to @Kmeakin) - Fixed typos and marked one internal function unsafe (thanks to @hwjsnc)
- Added
-
0.1.219 Aug 2023Release notes
Open source →- Marked
EcoVec::{new, is_empty, len}as const fn (thanks to @Kmeakin) - Improved performance of
EcoVec::from_elemandeco_vec!macro (thanks to @Kmeakin) - Switched to smarter internal representation of an empty
EcoVecwhich simplifies the code and removes a potential branch inEcoVec::as_slicefor types with huge alignment (thanks to @Kmeakin) - Added
stdfeature (enabled by default) andimpl std::io::Write for EcoVec<u8>guarded by it (thanks to @imbrem)
- Marked
-
0.1.116 Apr 2023Nothing published for this version
-
0.1.001 Mar 2023Nothing published for this version