Get a diff between two OpenAPI descriptions.

Related tags

Utilities anicca
Overview

Anicca

https://en.wikipedia.org/wiki/Impermanence

Get the difference between two OpenAPI descriptions. Still in heavy development, use at your own risk.

Usage

$ cargo run --bin cli diff fixtures/pet-store.json fixtures/pet-store-changed.json --format json

Documentation

Docs.rs

Limitations

You might also like...
A compatibility layer to smooth the transition between different versions of embedded-hal

Embedded HAL Compatibility Layer A compatibility layer to smooth the transition between different versions of embedded-hal (specifically 0.2.x and 1.0

Easily sync your clipboard between devices. This is a work in progress app.

Clipboard Sync Description Easily sync your clipboard between devices. This is a work in progress app. Stack Frontend: React Tauri isomorphic-ws TSX,

Count and convert between different indexing schemes on utf8 string slices

Str Indices Count and convert between different indexing schemes on utf8 string slices. The following schemes are currently supported: Chars (or "Unic

Generate enum from a trait, with converters between them
Generate enum from a trait, with converters between them

Derive macro for Rust that turns traits into enums, providing tools for calling funtions over channels

A translator interface between VoiceMeeter/VBAN and the X-Touch

VBAN - XCtrl translator This serves as a network based translator for interfacing the Behringer X-Touch with VoiceMeeter Potato. It is designed to ru

Create virtual serial ports, connect them to physical serial ports, and create routes between them all.

Virtual Serial Port Router (vsp-router) Create virtual serial ports, connect them to physical serial ports, and create routes between them all. vsp-ro

Stdto provides a set of functional traits for conversion between various data representations.

Stdto stdto provides a set of functional traits for conversion between various data representations. | Examples | Docs | Latest Note | stdto = "0.13.0

A command-line tool which can move CloudFormation resources between stacks
A command-line tool which can move CloudFormation resources between stacks

cfn-teleport A command-line tool which can move CloudFormation resources between stacks. Installation On a Mac you can install via Homebrew: brew inst

Adapters to convert between different writable APIs.

I/O adapters This crate provides adapters to compose writeable traits in the standard library. The following conversions are available: fmt::Write -

Comments
  • `paths.changed.{path}` does not need the `{ operations_added, operations_changed, operations_removed }` layer

    `paths.changed.{path}` does not need the `{ operations_added, operations_changed, operations_removed }` layer

    Example:

    image

    E.g. instead of

    paths.changed.paths["/app"].operations_changed.get
    

    you could just do

    paths.change.paths["/app"].get
    

    The operations_changed is implied by the changed

    opened by gr2m 2
  • running anicca twice with same inputs has different outputs

    running anicca twice with same inputs has different outputs

    To reproduce

    # download latest `api.github.com.deref.json` and store it as `fixtures/api.github.com.deref-changed.json`
    curl https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/dereferenced/api.github.com.deref.json --output fixtures/api.github.com.deref-changed.json
    # create diff.json
    cargo run --bin cli diff fixtures/api.github.com.deref.json fixtures/api.github.com.deref-changed.json --format json > diff.json
    # stage the changes
    git add .
    # run again
    cargo run --bin cli diff fixtures/api.github.com.deref.json fixtures/api.github.com.deref-changed.json --format json > diff.json
    # diff.json has been changed, but it should not have
    git status
    
    opened by gr2m 0
  • Ignore diffs in `description` keys

    Ignore diffs in `description` keys

    This is probably pretty specific to GitHub's OpenAPI specs for GHES

    A lot of the paths.changed entries are only listed because documentation URLs changed between versions.

    Example

    image

    Maybe there is a smarter approach to this, but in my specific use case it creates quite a lot of noise

    opened by gr2m 0
  • Simplify JSON and YAML outputs

    Simplify JSON and YAML outputs

    Currently we output a TON of data in serialized diffs. Diffs between objects often include the full object representation. Maybe we include only the strict necessary and a JSON pointer to the full objects?

    enhancement 
    opened by xuorig 0
Releases(0.1)
Owner
Marc-Andre Giroux
🚀
Marc-Andre Giroux
kubernetes openapi unmangler

kopium A kubernetes openapi unmangler. Creates rust structs from a named crd by converting the live openapi schema. ⚠️ WARNING: ALPHA SOFTWARE ⚠️ Inst

kube-rs 48 Jan 3, 2023
diff successive buffers with embedded ansi codes in rust, outputting a minimal change

ansi-diff diff successive buffers with embedded ansi codes in rust, outputting a minimal change You can use this crate to build command-line interface

James Halliday 7 Aug 11, 2022
Convert number like 42 to forty-two

num2words Convert number like 42 to forty-two Usage This crate can be either used as a library or a binary. Library Example usage: use num2words::Num2

Asperatus 5 Mar 30, 2022
A proc-macro to get Vec from struct and vise versa

byteme A proc-macro to convert a struct into Vec and back by implemeting From trait on the struct. The conversion is Big Endian by default. We have ma

Breu Inc. 11 Nov 4, 2022
A tool that generates a Sublime Text project file that helps you get started using Scoggle.

README A tool that generates a Sublime Text project file that helps you get started using Scoggle. While Scoggle-Gen may not find every single source

Sanjiv Sahayam 0 Jan 10, 2022
A lean, minimal, and stable set of types for color interoperation between crates in Rust.

This library provides a lean, minimal, and stable set of types for color interoperation between crates in Rust. Its goal is to serve the same function that mint provides for (linear algebra) math types.

Gray Olson 16 Sep 21, 2022
Easy switch between AWS Profiles and Regions

AWSP - CLI To Manage your AWS Profiles! AWSP provides an interactive terminal to interact with your AWS Profiles. The aim of this project is to make i

KubeOps Skills 14 Dec 25, 2022
This crate bridges between gstreamer and tracing ecosystems.

This crate provides a bridge between gstreamer and the tracing ecosystem. The goal is to allow Rust applications utilizing GStreamer to better integra

Standard Cognition OSS 17 Jun 7, 2022
Simple interoperability between C++ coroutines and asynchronous Rust

cxx-async Overview cxx-async is a Rust crate that extends the cxx library to provide seamless interoperability between asynchronous Rust code using as

Patrick Walton 180 Dec 16, 2022
my attempt at compromise between unwrapping and bullying my dependencies' authors for Error impl

string-eyre Has this happened to you? error[E0599]: the method `wrap_err` exists for enum `Result<(), tauri::Error>`, but its trait bounds were not sa

Michał Sidor 1 Nov 25, 2021