Announcing diff.rs!

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

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • 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 creating reliable and efficient web applications

    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).

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • 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

    Cross-platform, safe, pure-rust graphics 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

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • 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