|
| 1 | +# Comparison of STAC validators |
| 2 | + |
| 3 | +There are - as far as I know - three maintained validators available for STAC: |
| 4 | + |
| 5 | +1. The original [Python validator](https://github.com/sparkgeo/stac-validator) |
| 6 | +3. The validation functionality shipped with [PySTAC](https://github.com/stac-utils/pystac) |
| 7 | +4. [This Node/JavaScript validator](https://github.com/m-mohr/stac-node-validator) |
| 8 | + |
| 9 | +Additionally I found some tools that seem to be unmaintained: [1](https://github.com/brianbancroft/stac-validator-cli) [2](https://github.com/JamesOConnor/stac-validator) |
| 10 | + |
| 11 | +Here I'd like to give an overview of what the validators are capable of and what they are missing so that you can make a well-informed choice. |
| 12 | + |
| 13 | +## Environment |
| 14 | + |
| 15 | +| | Python Validator | PySTAC | STAC Node Validator | |
| 16 | +| :------------------------- | ------------------------------------------ | ------------------- | ------------------- | |
| 17 | +| Validator Version | 0.1.3 | 0.5.1 | 0.4.0 | |
| 18 | +| Language | Python 3.6 | Python 3 | NodeJS | |
| 19 | +| CLI | Yes | No | Yes | |
| 20 | +| Programmatic | No | Yes | Planned | |
| 21 | +| Online | Yes, [staclint.com](https://staclint.com/) | No | Planned | |
| 22 | +| Protocols supported (Read) | HTTP(S), Filesystem | HTTP(S), Filesystem | HTTP(S), Filesystem | |
| 23 | +| Gives | HTML / CLI Output | Python Dict | CLI output | |
| 24 | + |
| 25 | +## Specifications supported |
| 26 | + |
| 27 | +| | Python Validator | PySTAC | STAC Node Validator | |
| 28 | +| ---------------------------------------- | ------------------- | ------------------- | ------------------------------------------- | |
| 29 | +| STAC Versions supported | >= 0.8.0 | >= 0.4.0 | >= 1.0.0-beta.1 | |
| 30 | +| Protocols supported | HTTP(S), Filesystem | HTTP(S), Filesystem | HTTP(S), Filesystem | |
| 31 | +| Validates Items / Catalogs / Collections | Yes | Yes | Yes | |
| 32 | +| Validates Core Extensions | No | Yes | Yes | |
| 33 | +| Validates External / Custom Extensions | No | No | Yes | |
| 34 | +| Validates STAC API responses | Unknown | No | Pertially (only items/collections in lists) | |
| 35 | +| Validates STAC API extensions | No | No | No | |
| 36 | + |
| 37 | +## Other Features |
| 38 | + |
| 39 | +| | Python Validator | PySTAC | STAC Node Validator | |
| 40 | +| :----------------------------- | -------------------------------- | -------------------------------------------------------- | ------------------- | |
| 41 | +| Can follow links | Yes | [Planned](https://github.com/stac-utils/pystac/pull/162) | No | |
| 42 | +| Parallelisation | Yes | No | No | |
| 43 | +| Validate against local schemas | Yes | Planned | Yes | |
| 44 | +| Other comments | Planned to use PySTAC internally | General Python library to work with STAC catalogs | - | |
0 commit comments