Skip to content

Commit d6834b7

Browse files
authored
Merge pull request #74 from trifectatechfoundation/rename-zstd-libzstd
rename zstd-rs to libzstd-rs
2 parents 8136758 + 7fd7f95 commit d6834b7

5 files changed

Lines changed: 22 additions & 22 deletions

File tree

content/blog/Compression compiler contributions.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ authors = ["Folkert de Vries"]
55
date = "2026-03-30"
66

77
[taxonomies]
8-
tags = ["bzip2-rs", "zlib-rs", "zstd-rs", "data compression"]
8+
tags = ["bzip2-rs", "zlib-rs", "libzstd-rs", "data compression"]
99

1010
+++
1111

1212
In our data compression projects, we use Rust where C is traditionally used. During the work, we've hit limitations in Rust itself and in the surrounding tooling. Over the years, we've become increasingly comfortable with fixing these issues ourselves.
1313

1414
<!-- more -->
1515

16-
Previously, we felt stuck at times by missing functionality in stable Rust, without a clear path forward except to wait. In practice, waiting has not been a fruitful strategy: the features we need are niche and rarely make it to the top of Rust maintainers' to-do lists.
16+
Previously, we felt stuck at times by missing functionality in stable Rust, without a clear path forward except to wait. In practice, waiting has not been a fruitful strategy: the features we need are niche and rarely make it to the top of Rust maintainers' to-do lists.
1717

1818
In this post, I'll share some of the steps we took to get unstuck. It goes over some of the fixes and improvements that we've made as a part of Trifecta Tech's [Data compression initiative](/initiatives/data-compression) (`zlib-rs`, `libbzip2-rs` and `libzstd-rs-sys`) over the past year.
1919

@@ -73,15 +73,15 @@ Along the way it turned out that the implementation of the related `ptr_offset_w
7373

7474
### Improved intrinsic support
7575

76-
We use Miri to test the unsafe code that we still have. I recently wrote about our work on [emulating avx-512 intrinsics in Miri](https://trifectatech.org/blog/emulating-avx-512-intrinsics-in-miri/). Since then we've added support for a couple additional instructions for our `avx512vnni` implementation of adler32.
76+
We use Miri to test the unsafe code that we still have. I recently wrote about our work on [emulating avx-512 intrinsics in Miri](https://trifectatech.org/blog/emulating-avx-512-intrinsics-in-miri/). Since then we've added support for a couple additional instructions for our `avx512vnni` implementation of adler32.
7777

7878
My next goal is to also be able to run the zlib-rs AArch64 SIMD tests with Miri. For now that'll need some additional support in Miri itself, but with LLVM 23 we'll be able to only use portable intrinsics and the custom Miri support should no longer be needed.
7979

8080
I want to stress that the Miri implementation is really only half the work. The other half is testing the implementation (sometimes giving rise to improving tests in e.g. `rust-lang/stdarch` as well), to make sure that the behavior is correct and that support never regresses.
8181

8282
### ICE when reading from a static array of function pointers
8383

84-
In the first week of working on [libzstd-rs-sys](https://github.com/trifectatechfoundation/libzstd-rs-sys) we ran into `c2rust` producing some Rust code that Miri was unable to handle.
84+
In the first week of working on [libzstd-rs-sys](https://github.com/trifectatechfoundation/libzstd-rs-sys) we ran into `c2rust` producing some Rust code that Miri was unable to handle.
8585

8686
[https://github.com/rust-lang/miri/issues/4501](https://github.com/rust-lang/miri/issues/4501)
8787

@@ -144,7 +144,7 @@ Rust can call c-variadic functions (like `libc::printf`), but defining them is u
144144

145145
```rust
146146
pub unsafe extern "C" fn gzprintf(
147-
file: gzFile,
147+
file: gzFile,
148148
format: *const c_char,
149149
va: ...) -> c_int {
150150
unsafe { gzvprintf(file, format, va) }
@@ -167,4 +167,4 @@ When you do cursed things, problems find you.
167167

168168
The interplay between low-level systems work and compiler development has been very fruitful for us. It has been enormously gratifying to be able to tackle some of these problems ourselves, and we have lots of exciting things lined up for 2026.
169169

170-
*These contributions to the compiler resulted from Trifecta Tech Foundation's [Data compression initiative](/initiatives/data-compression). Please [contact us](/support) if you are interested in financially supporting this work.*
170+
*These contributions to the compiler resulted from Trifecta Tech Foundation's [Data compression initiative](/initiatives/data-compression). Please [contact us](/support) if you are interested in financially supporting this work.*

content/initiatives/data-compression.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,22 @@ summary = "<p>Almost all content sent over the Internet undergoes data compressi
1111

1212
projects = [
1313
"zlib-rs",
14-
"zstd-rs",
14+
"libzstd-rs",
1515
"bzip2-rs"
1616
]
1717

1818
funders = [
19-
"nlnetfoundation",
20-
"chainguard",
19+
"nlnetfoundation",
20+
"chainguard",
2121
"ngi-zero-core",
2222
"min-bzk",
2323
"astral"
2424
]
2525

2626
supporters = [
27-
"devolutions",
28-
"prossimo",
29-
"tweedegolf",
27+
"devolutions",
28+
"prossimo",
29+
"tweedegolf",
3030
"isrg"
3131
]
3232

@@ -68,12 +68,12 @@ In June 2025 we released a new version of the **bzip2** crate, see [the bzip2 pr
6868

6969
### What's Next
7070

71-
Development of **zstd** began in July 2025, with the first release of the decoder planned for February 2026. We're currently seeking funding to complete work on the encoder side, see [Zstandard in Rust](/projects/zstd-rs/).
71+
Development of **zstd** began in July 2025, with the first release of the decoder planned for February 2026. We're currently seeking funding to complete work on the encoder side, see [Zstandard in Rust](/projects/libzstd-rs/).
7272

7373
Meanwhile, work on zlib-rs and bzip2-rs continues to improve the implementations, enhance performance, and expand adoption.
7474

7575
### Roadmap
7676

77-
See the [zlib-rs](/projects/zlib-rs/), [bzip2-rs](/projects/bzip2-rs/) and [Zstandard in Rust](/projects/zstd-rs/) project pages.
77+
See the [zlib-rs](/projects/zlib-rs/), [bzip2-rs](/projects/bzip2-rs/) and [Zstandard in Rust](/projects/libzstd-rs/) project pages.
7878

79-
Please [get in touch with us](/support), if you are interested in financially supporting our data compression projects.
79+
Please [get in touch with us](/support), if you are interested in financially supporting our data compression projects.

content/initiatives/workplans/workplan-zstd-rs.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
+++
22

33
title = "Zstandard in Rust"
4-
slug = "zstd-rs"
4+
slug = "libzstd-rs"
55
template = "initiatives/workplans/workplan.html"
66

77
[extra]
8-
backLink = "projects/zstd-rs"
8+
backLink = "projects/libzstd-rs"
99
backTitle = "Back to project: Zstandard in Rust"
1010
+++
1111

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
+++
22
title = "Zstandard in Rust"
3-
slug = "zstd-rs"
3+
slug = "libzstd-rs"
44
template = "projects/project.html"
55

66
[extra]
@@ -47,7 +47,7 @@ We thank [Chainguard](https://www.chainguard.dev/), [Astral](https://astral.sh/)
4747
- 2026 Q1: release of decoder
4848
- 2026 Q2: start of encoder implementation (*pending funding*)
4949

50-
For details see [the workplan](/initiatives/workplans/zstd-rs/).
50+
For details see [the workplan](/initiatives/workplans/libzstd-rs/).
5151

5252
### Support Zstandard in Rust
5353

static/data/funders.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,13 @@
150150
"projects": [
151151
{
152152
"initiative": "data-compression",
153-
"name": "zlib-rs",
153+
"name": "libzlib-rs",
154154
"year": [2024],
155155
"supportType": "Chainguard funded initial development of zlib-rs through Prossimo."
156156
},
157157
{
158158
"initiative": "data-compression",
159-
"name": "zstd-rs",
159+
"name": "libzstd-rs",
160160
"year": [2025]
161161
}
162162
]
@@ -302,4 +302,4 @@
302302
}
303303
]
304304
}
305-
]
305+
]

0 commit comments

Comments
 (0)