A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/rust-secure-code/safety-dance/ below:

rust-secure-code/safety-dance: Auditing crates for unsafe code which can be safely replaced

This is a place for people to communicate about auditing unsafe code in core Rust crates and replacing it with safe code where feasible.

Everyone is invited to participate!

You do not have to be an unsafe expert to help out. There's a lot of work to do just picking crates (ones with a lot of reverse-dependencies are best), and then sorting out where they use unsafe and why. If you think something isn't right just post it in the tracking issue and others can have a look and talk it out.

Our process is as follows:

  1. File a tracking issue in this repo about a particular crate, giving its name and a link to their github (or other repository location).
  2. Audit unsafe usage in that crate.
  3. When problems are found with an unsafe block we want to file bug reports in that crate's repo, send PRs with fixes if possible, and also write up security advisories if necessary.
  4. Once a crate has been gone over enough we close that issue. If the crate needs re-checking again later on we just open a new issue.
  5. (Optional) If you have completely cleansed a crate of unsafe, add a #![forbid(unsafe_code)] attribute to its src/lib.rs or main.rs. After doing that, help others discover Safety Dance by adding a badge to your README.md:

Markdown code:

[![unsafe forbidden](https://img.shields.io/badge/unsafe-forbidden-success.svg)](https://github.com/rust-secure-code/safety-dance/)

Check out the safety improvements already done!

GIF image encoder/decoder written in Rust (tracking issue)

100% safety blocked by Polonius integration in rustc

Done by: Shnatsel

A streaming compression/decompression library DEFLATE-based streams in Rust. Has C and Rust backends (tracking issue)

Done by: oyvindln, Shnatsel, Alex Crichton

A general purpose library of common HTTP types (tracking issue)

Done by: Qwaz, Sean McArthur

Image operations and conversions to/from image formats (tracking issue)

The remaining unsafe blocks are inherent and cannot be removed. They have been audited and found to be sound.

Done by: fintelia, HeroicKatora, 64

Popular DEFLATE compression/decompression library (tracking issue)

Done by: DevQps, Shnatsel, WanzenBug, mleonhard

The fastest DEFLATE compression/decompression library in Rust, backend for flate2 (tracking issue)

Done by: Shnatsel, oyvindln

Fast and memory saving bsdiff 4.x compatible delta compressor and patcher (tracking issue)

Done by: Nicolas Braud-Santoni

A spinlock for Rust (tracking issue)

Done by: Matt Taylor, Acrimon

Suffix array construction and searching algorithms for in-memory binary data (tracking issue)

Done by: Nicolas Braud-Santoni

You can help by:

  1. Nominating crates for auditing - we're looking for widely used crates with unsafe in them
  2. Auditing nominated crates for soundness
  3. Replacing unsafe code with safe code where possible (where not possible - documenting why)
  4. Inspecting crates that have been made safer and requesting Clippy lints for the antipatterns discovered

Check out what's in progress or pick up a work item on the issue tracker!


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4