Announcing diff.rs!

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/rust

Our great sponsors
  • SonarLint - Clean code begins in your IDE with SonarLint
  • InfluxDB - Access the most powerful time series database as a service
  • SaaSHub - Software Alternatives and Reviews
  • crates.io

    The Rust package registry

    For sure! There is not too much I can do about that right now sadly, the issue is that negative responses (404s) of the crates.io API aren't setting the right CORS headers, so diff.rs cannot know if a crate was not found (404) or if there was an actual error. The crates.io team has merged this: https://github.com/rust-lang/crates.io/commit/9e774556ec78f47d82a6ca467b25d3c096761381 which I think will let me fix this, but I have to do more testing. Thanks for the feedback!

  • yew

    Rust / Wasm framework for building client web apps

    This tool was heavily inspired by docs.rs, which I am a heavy user of. I wanted to build something that is written in Rust, runs completely in-browser (basically any excuse to get my hands dirty with Yew and WASM).

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • tar-rs

    Tar file reading/writing for Rust

    It works by fetching a crate's metadata from crates.io, downloading the sources using reqwest, uncompressing them using flate2, extracting them (using tar), and finally rendering a diff (using similar). In the UI you can switch between different versions of the crate to diff against and it also has a search bar to enter the crate name.

  • reqwest

    An easy and powerful Rust HTTP Client

    It works by fetching a crate's metadata from crates.io, downloading the sources using reqwest, uncompressing them using flate2, extracting them (using tar), and finally rendering a diff (using similar). In the UI you can switch between different versions of the crate to diff against and it also has a search bar to enter the crate name.

  • flate2-rs

    DEFLATE, gzip, and zlib bindings for Rust

    It works by fetching a crate's metadata from crates.io, downloading the sources using reqwest, uncompressing them using flate2, extracting them (using tar), and finally rendering a diff (using similar). In the UI you can switch between different versions of the crate to diff against and it also has a search bar to enter the crate name.

  • docs.rs

    crates.io documentation generator

    This tool was heavily inspired by docs.rs, which I am a heavy user of. I wanted to build something that is written in Rust, runs completely in-browser (basically any excuse to get my hands dirty with Yew and WASM).

  • wgpu

    Safe and portable GPU abstraction in Rust, implementing WebGPU API.

    I see some weirdness in the wgpu crate, it seems like for some reason it thinks every line of most files changed between 0.15.0 and 0.15.1 (eg) when in reality there were only a dozen or so commits, none of which even touched that file (github diff for the same range).

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • trycmd

    Snapshot testing for a herd of CLI tests

    If needed, here is an example of per-word diffing and highlighting of trailing newline differences.

  • bevy

    A refreshingly simple data-driven game engine built in Rust

    $ git clone https://github.com/bevyengine/bevy.git ; cd bevy $ cargo install --locked cargo-public-api $ cargo public-api -ss -p bevy_utils diff v0.9.1..v0.10.0 Removed items from the public API ================================= (none) Changed items in the public API =============================== (none) Added items to the public API ============================= +pub use bevy_utils::<> +pub use bevy_utils::petgraph +pub use bevy_utils::thiserror +pub fn bevy_utils::synccell::SyncCell::read(&self) -> &T where T: core::marker::Sync +pub mod bevy_utils::syncunsafecell +pub use bevy_utils::syncunsafecell::UnsafeCell +#[repr(transparent)] pub struct bevy_utils::syncunsafecell::SyncUnsafeCell +impl bevy_utils::syncunsafecell::SyncUnsafeCell +pub fn bevy_utils::syncunsafecell::SyncUnsafeCell::from_mut(t: &mut T) -> &bevy_utils::syncunsafecell::SyncUnsafeCell +pub const fn bevy_utils::syncunsafecell::SyncUnsafeCell::get(&self) -> *mut T +pub fn bevy_utils::syncunsafecell::SyncUnsafeCell::get_mut(&mut self) -> &mut T +pub const fn bevy_utils::syncunsafecell::SyncUnsafeCell::raw_get(this: *const Self) -> *mut T ...

  • cargo-public-api

    List and diff the public API of Rust library crates between releases and commits. Detect breaking API changes and semver violations via CI or a CLI.

    The API diffing tool already exists ;) Check out https://github.com/Enselic/cargo-public-api ! Would be super cool to integrate with diff.rs at some point. Nice job with diff.rs btw!

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts