---
title: "zstd-safe Breaking Changes on crates.io | Since.dev"
description: "What each zstd-safe release removed, renamed or changed: 8 breaking changes in 2 versions on crates.io, each with its source."
canonical_url: https://since.dev/packages/crates/zstd-safe
last_updated: 2026-11-03
---

# zstd-safe breaking changes

Every breaking API change we have recorded in zstd-safe on crates.io: 8 breaking changes in 2 versions. Below are its newest 2 versions, removals and renames first, each with its source.

Newest change November 3, 2026

## 7.4.0

5 breaking changes, first published November 3, 2026.

- **Signature changed** `zstd_safe::CCtx`  

Was struct CCtx<'a>(NonNull<zstd_sys::ZSTD_CCtx>, PhantomData<&'a ()>); now struct CCtx<'a>(NonNull<zstd_sys::ZSTD_CCtx>, PhantomData<&'a ()>, Poison, Workers). [crates.io](https://crates.io/crates/zstd-safe/7.4.0)
- **Signature changed** `zstd_safe::CCtx::init_using_cdict`  

Was fn init_using_cdict<'b>(&mut self, cdict: &CDict<'b>) -> SafeResult where 'b: 'a, // Dictionary outlives the stream.; now fn init_using_cdict<'b>(&mut self, cdict: &'a CDict<'b>) -> SafeResult where 'b: 'a, // Dictionary outlives the... [crates.io](https://crates.io/crates/zstd-safe/7.4.0)
- **Signature changed** `zstd_safe::DCtx`  

Was struct DCtx<'a>(NonNull<zstd_sys::ZSTD_DCtx>, PhantomData<&'a ()>); now struct DCtx<'a>(NonNull<zstd_sys::ZSTD_DCtx>, PhantomData<&'a ()>, Poison, DState). [crates.io](https://crates.io/crates/zstd-safe/7.4.0)
- **Signature changed** `zstd_safe::DCtx::init_using_ddict`  

Was fn init_using_ddict<'b>(&mut self, ddict: &DDict<'b>) -> SafeResult where 'b: 'a,; now fn init_using_ddict<'b>(&mut self, ddict: &'a DDict<'b>) -> SafeResult where 'b: 'a,. [crates.io](https://crates.io/crates/zstd-safe/7.4.0)
- **Signature changed** `zstd_safe::seekable::Seekable`  

Was struct Seekable<'a>(NonNull<zstd_sys::ZSTD_seekable>, PhantomData<&'a ()>); now struct Seekable<'a>(NonNull<zstd_sys::ZSTD_seekable>, PhantomData<&'a ()>, Poison). [crates.io](https://crates.io/crates/zstd-safe/7.4.0)

## 7.3.0

3 breaking changes, first published September 4, 2026.

- **Signature changed** `zstd_safe::CCtx::compress_block`  

Was fn compress_block<C: WriteBuf + ?Sized>(&mut self, dst: &mut C, src: &\[u8\]) -> SafeResult; now unsafe fn compress_block<C: WriteBuf + ?Sized>(&mut self, dst: &mut C, src: &\[u8\]) -> SafeResult. [crates.io](https://crates.io/crates/zstd-safe/7.3.0)
- **Signature changed** `zstd_safe::DCtx::decompress_block`  

Was fn decompress_block<C: WriteBuf + ?Sized>(&mut self, dst: &mut C, src: &\[u8\]) -> SafeResult; now unsafe fn decompress_block<C: WriteBuf + ?Sized>(&mut self, dst: &mut C, src: &\[u8\]) -> SafeResult. [crates.io](https://crates.io/crates/zstd-safe/7.3.0)
- **Signature changed** `zstd_safe::DCtx::insert_block`  

Was fn insert_block(&mut self, block: &\[u8\]) -> usize; now unsafe fn insert_block(&mut self, block: &\[u8\]) -> usize. [crates.io](https://crates.io/crates/zstd-safe/7.3.0)

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#api) reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

## Put your code on continuous management.

Scan a public repository now, or give your agent one line.

### See how out of date your code is.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
