# `fastobo-validator` [](https://github.com/fastobo/fastobo-validator/stargazers)
*Faultess validation tool for OBO products.*
[](https://travis-ci.org/fastobo/fastobo-validator/branches)
[](https://choosealicense.com/licenses/mit/)
[](https://github.com/fastobo/fastobo-validator)
[](https://bintray.com/fastobo/fastobo-validator)
[](https://crates.io/crates/fastobo-validator)
[](https://github.com/fastobo/fastobo-validator/blob/master/CHANGELOG.md)
[](https://github.com/fastobo/fastobo-validator/issues)
## Overview
`fastobo-validator` is a command-line tool to validate an OBO file in format
version 1.4 against the [latest specification](http://owlcollab.github.io/oboformat/doc/obo-syntax.html).
## Setup
`fastobo-validator` is distributed as a pre-built binary for the following platforms:
* Linux x86-64 -
[stable version](https://bintray.com/fastobo/fastobo-validator/download_file?file_path=stable%2Ffastobo_validator-x86_64-linux-musl.tar.gz) -
[development version](https://bintray.com/fastobo/fastobo-validator/download_file?file_path=master%2Ffastobo_validator-x86_64-linux-musl.tar.gz)
* OSX x86-64 -
[stable version](https://bintray.com/fastobo/fastobo-validator/download_file?file_path=stable%2Ffastobo_validator-x86_64-apple-darwin.tar.gz) -
[development version](https://bintray.com/fastobo/fastobo-validator/download_file?file_path=master%2Ffastobo_validator-x86_64-apple-darwin.tar.gz)
Simply download the archive, and unpack the `fastobo-validator` binary somewhere in your `$PATH`.
For other OS (notably Windows), you'll need to build the binary from source. Make sure to have the
Rust compiler installed (check the [installation methods](https://forge.rust-lang.org/other-installation-methods.html))
and simply run `cargo install fastobo-validator` to install the binary in your `$CARGO_HOME` folder.
## Validation
### Mandatory
#### Syntax
The syntax of the OBO format version 1.4 has been made more restrictive compared
to the format version 1.2, but files produces by modern tools (such as `ROBOT`)
should already be compliant with this version.
### Optional
#### ISBN validation (`-I`)
ISBN identifiers embed a validation digit which can be used to validate a given
code without querying an external database. Enabling this validation check will
process all `ISBN`-prefixed identifiers for a valid ISBN. It will *not* check
`ISBN10` or `ISBN13`-prefixed identifiers.
## Usage
Simply run the binary against one or more OBO files:
```console
$ fastobo-validator go.obo
```
The validator will then parse and validate each OBO product, and return with a
non-null error code if any error was detected, displaying a small report for
each error.
## Feedback
Found a bug ? Have an enhancement request ? Head over to the
[GitHub issue tracker](https://github.com/fastobo/fastobo-validator/issues) of the project if
you need to report or ask something. If you are filling in on a bug, please include as much
information as you can about the issue, and try to recreate the same bug in a simple, easily
reproducible situation.
## About
This project is currently being developed by [Martin Larralde](https://github.com/althonos)
as part of a Master's Degree internship in the [BBOP team](http://berkeleybop.org/) of the
[Lawrence Berkeley National Laboratory](https://www.lbl.gov/), under the supervision of
[Chris Mungall](http://biosciences.lbl.gov/profiles/chris-mungall/).