openapi-spec-validator-rs
Copyright 2026 Arjun Aravind

This product is a Rust port of openapi-spec-validator
(https://github.com/python-openapi/openapi-spec-validator),
Copyright 2017-2023 Artur Maciag, licensed under the Apache License,
Version 2.0. Its validation rules are ported from that project's source code,
and the OpenAPI meta-schemas in crates/openapi-spec-validator-rs/resources/schemas
are copied from it.

This product bundles the OpenAPI 3.1 and 3.2 schema dialect meta-schemas in
crates/openapi-spec-validator-rs/resources/dialects, as distributed with
openapi-schema-validator (https://github.com/python-openapi/openapi-schema-validator),
and ports that project's OpenAPI keywords and format checks to Rust.
openapi-schema-validator is Copyright (c) 2020, A, licensed under the BSD 3-Clause
License:

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice,
     this list of conditions and the following disclaimer in the documentation
     and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its
     contributors may be used to endorse or promote products derived from
     this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.

The OpenAPI meta-schemas themselves are published by the OpenAPI Initiative
(https://spec.openapis.org) under the Apache License, Version 2.0.

This product ports parts of the following projects to Rust, to reproduce their
behaviour exactly:

* jsonschema (https://github.com/python-jsonschema/jsonschema): its keyword
  validators, error rendering and best_match, Copyright (c) 2013 Julian Berman;
* PyYAML (https://github.com/yaml/pyyaml): its YAML 1.1 resolver and constructor
  rules, Copyright (c) 2017-2021 Ingy döt Net, Copyright (c) 2006-2016 Kirill Simonov.

Both are licensed under the MIT License:

  Permission is hereby granted, free of charge, to any person obtaining a copy of
  this software and associated documentation files (the "Software"), to deal in
  the Software without restriction, including without limitation the rights to
  use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
  the Software, and to permit persons to whom the Software is furnished to do so,
  subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
  FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

It also ports parts of CPython (https://www.python.org), Copyright (c) 2001-2024
Python Software Foundation; All Rights Reserved. Summary of the changes: the regular
expression parser (Lib/re/_parser.py, with the checks of Lib/re/_compiler.py) is
translated to Rust and, instead of compiling patterns for CPython's engine, translates
them for the fancy-regex crate; str repr (Objects/unicodeobject.c), pprint and textwrap
formatting (Lib/pprint.py, Lib/textwrap.py) and str.format field parsing
(Objects/stringlib/unicode_format.h) are translated to Rust and work on JSON values only.
These parts are licensed under the Python Software Foundation License Version 2:

  PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
  --------------------------------------------

  1. This LICENSE AGREEMENT is between the Python Software Foundation
  ("PSF"), and the Individual or Organization ("Licensee") accessing and
  otherwise using this software ("Python") in source or binary form and
  its associated documentation.

  2. Subject to the terms and conditions of this License Agreement, PSF hereby
  grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
  analyze, test, perform and/or display publicly, prepare derivative works,
  distribute, and otherwise use Python alone or in any derivative version,
  provided, however, that PSF's License Agreement and PSF's notice of copyright,
  i.e., "Copyright (c) 2001-2024 Python Software Foundation; All Rights Reserved"
  are retained in Python alone or in any derivative version prepared by Licensee.

  3. In the event Licensee prepares a derivative work that is based on
  or incorporates Python or any part thereof, and wants to make
  the derivative work available to others as provided herein, then
  Licensee hereby agrees to include in any such work a brief summary of
  the changes made to Python.

  4. PSF is making Python available to Licensee on an "AS IS"
  basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
  IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
  DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
  FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
  INFRINGE ANY THIRD PARTY RIGHTS.

  5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
  FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
  A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
  OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

  6. This License Agreement will automatically terminate upon a material
  breach of its terms and conditions.

  7. Nothing in this License Agreement shall be deemed to create any
  relationship of agency, partnership, or joint venture between PSF and
  Licensee.  This License Agreement does not grant permission to use PSF
  trademarks or trade name in a trademark sense to endorse or promote
  products or services of Licensee, or any third party.

  8. By copying, installing or otherwise using Python, Licensee
  agrees to be bound by the terms and conditions of this License
  Agreement.
