← Back to project catalogue
GP-CS-0MHQ7PBComputer ScienceReady

Rust API evolution and contract verifier

A Rust command-line verifier that compares OpenAPI contracts, identifies affected named consumers, and records reproducible evidence for breaking and compatible changes.

Rust API evolution and contract verifier project visual
GP-CS-0MHQ7PB · Computer Science
  • Rust
  • OpenAPI 3.1
  • OpenAPI 3.2
  • JSON Schema 2020-12
  • Python

Project definition

Problem statement

A changed API may remain syntactically valid while breaking an existing consumer through a removed field, stricter validation, altered error response, renamed enum value, or different authentication requirement.

The engineering problem is to compare meaning rather than text alone, account for request and response direction, connect a change to actual consumer expectations, and produce a repeatable compatibility decision with evidence.

Project objectives

  • Parse and normalise local OpenAPI 3.1 and 3.2 JSON or YAML specifications.
  • Classify request, response, schema, operation, security, and status-code changes.
  • Connect changed contract paths to recorded named consumer expectations.
  • Recommend semantic version changes from the observed finding severity.
  • Measure classification accuracy, consumer impact detection, and analysis performance.

Project structure

Project components

01

Specification loader

Loads bounded JSON or YAML documents, accepts local references only, rejects symlinks, and enforces nesting and recursion limits.

02

Semantic difference engine

Finds operation, parameter, schema, response, enum, constraint, and security changes with direction-aware rules.

03

Consumer evidence matcher

Matches recorded request and response expectations to changed operations, fields, statuses, and media types.

04

Version recommender

Converts the highest observed severity into an expected semantic version change and checks the proposed candidate version.

05

Evidence reporter

Writes findings, input hashes, consumer impact, version advice, runtime, and scope notes to five reviewable formats.

06

Experiment runner

Executes fifteen labelled cases, calculates classification metrics, compares an external tool, and measures scaling.

Methodology

Project workflow

  1. 01
    Load API versions

    The baseline and candidate specifications are parsed under explicit file, depth, and reference boundaries.

  2. 02
    Calculate semantic changes

    Direction-aware rules classify every supported contract difference.

  3. 03
    Identify consumers

    Recorded expectations are matched to changed operations, fields, responses, media types, and statuses.

  4. 04
    Check the version

    The highest finding severity determines the recommended release increment and validates the proposed version.

  5. 05
    Write the evidence

    The verifier stores hashes, findings, consumer impact, recommendation, runtime, and limitations in reviewable reports.

Demonstration scenario

A baseline student-record API is compared with a candidate release. The candidate makes an optional request field mandatory. The verifier records an error finding, identifies the two named consumers that submit requests without that field, recommends a major version change, and writes the complete evidence report.

Engineering

Tools and method

Analysis core
Rust enums and typed structures represent operations, schemas, findings, severity, consumer evidence, and version decisions.
Specification support
OpenAPI 3.1 and 3.2 JSON or YAML input with local references, cycle protection, validation errors, and bounded processing.
Consumer model
A bounded JSON evidence file records named consumers, versions, and request or response expectations without personal information.
Report layer
Deterministic serializers produce JSON, CSV, Markdown, escaped HTML, and an aggregate responsive dashboard.
Experiment fixtures
Fifteen versioned API pairs encode ten breaking and five compatible changes with independent ground truth.
Reproducibility
Pinned Rust and Python dependencies, input hashes, automated tests, and retained experiment outputs support review.

Testing

Evaluation

Evaluation measures

  • Ten true positives, five true negatives, zero false positives, and zero false negatives on the prepared corpus
  • Prepared-corpus precision, recall, and specificity of 1.0
  • Seven labelled cases connected to affected named consumers
  • Correct semantic version recommendation on every labelled case
  • Median and P95 runtime measured from 10 to 1,000 operations
  • Comparison with oasdiff 1.29.1 and an explicit explanation of the one policy difference
  • Twenty-five automated Rust tests plus repository, document, dependency, and security checks

Project boundaries

  • The verifier supports documented OpenAPI 3.1 and 3.2 HTTP contract patterns and does not implement every extension or vendor-specific rule.
  • All specification references must be local. Network references and symlinked inputs are rejected.
  • A compatible result covers the analysed specification and fixtures, not every possible undocumented consumer behaviour.
  • The consumer evidence is synthetic and contains no personal, buyer, account, or production information.

Included

  1. 01Rust command-line contract verification engine
  2. 02Fifteen labelled API evolution cases with named consumer evidence
  3. 03JSON, CSV, Markdown, HTML, and dashboard reports
  4. 04Classification, consumer-impact, version, and scaling results
  5. 05Complete source code in a private GitHub repository
  6. 06Complete 95-page project documentation in PDF and editable Word formats
  7. 07Complete 13-page setup and usage guide in PDF and editable Word formats

Project record

No information is collected on this page.

Permanent project ID
GP-CS-0MHQ7PB
Catalogued
21 Aug 2026
Completed
24 Aug 2026
Verified
24 Aug 2026
Demonstration
Included in repository

Handover

After purchase

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.