All Projects → gima → Govalid

gima / Govalid

Licence: unlicense
Data validation library for golang. [MIGRATING TO NEW ADDRESS]

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Govalid

Schema
📐 Validating data structures against a given Schema.
Stars: ✭ 359 (+508.47%)
Mutual labels:  json, schema, validation
Node Convict
Featureful configuration management library for Node.js
Stars: ✭ 1,855 (+3044.07%)
Mutual labels:  json, schema, validation
Framework
Strongly-typed JavaScript object with support for validation and error handling.
Stars: ✭ 136 (+130.51%)
Mutual labels:  json, schema, validation
Specs
Technical specifications and guidelines for implementing Frictionless Data.
Stars: ✭ 403 (+583.05%)
Mutual labels:  json, schema, validation
Winterfell
Generate complex, validated and extendable JSON-based forms in React.
Stars: ✭ 787 (+1233.9%)
Mutual labels:  json, validation
Encoding
Go package containing implementations of efficient encoding, decoding, and validation APIs.
Stars: ✭ 705 (+1094.92%)
Mutual labels:  json, validation
Cafy
☕️ Simple, lightweight, flexible validator generator
Stars: ✭ 22 (-62.71%)
Mutual labels:  schema, validation
Structured Acceptance Test
An open format definition for static analysis tools
Stars: ✭ 10 (-83.05%)
Mutual labels:  schema, validation
Pandera
A light-weight, flexible, and expressive pandas data validation library
Stars: ✭ 506 (+757.63%)
Mutual labels:  schema, validation
Cti Stix Validator
OASIS TC Open Repository: Validator for STIX 2.0 JSON normative requirements and best practices
Stars: ✭ 24 (-59.32%)
Mutual labels:  json, validation
Mintype
🍵 minimal composable type abstraction
Stars: ✭ 12 (-79.66%)
Mutual labels:  schema, validation
Marshmallow
A lightweight library for converting complex objects to and from simple Python datatypes.
Stars: ✭ 5,857 (+9827.12%)
Mutual labels:  schema, validation
Meteor Astronomy
Model layer for Meteor
Stars: ✭ 608 (+930.51%)
Mutual labels:  schema, validation
Strictyaml
Type-safe YAML parser and validator.
Stars: ✭ 836 (+1316.95%)
Mutual labels:  schema, validation
Superstruct
A simple and composable way to validate data in JavaScript (and TypeScript).
Stars: ✭ 5,604 (+9398.31%)
Mutual labels:  schema, validation
Valley
Extensible schema validations and declarative syntax helpers in Python.
Stars: ✭ 25 (-57.63%)
Mutual labels:  schema, validation
Partial.lenses.validation
Partial Lenses Validation is a JavaScript library for validating and transforming data
Stars: ✭ 39 (-33.9%)
Mutual labels:  json, validation
Val
golang JSON validation library.
Stars: ✭ 37 (-37.29%)
Mutual labels:  json, validation
Graphql Factory
A toolkit for building GraphQL
Stars: ✭ 44 (-25.42%)
Mutual labels:  json, schema
Inicpp
C++ parser of INI files with schema validation.
Stars: ✭ 47 (-20.34%)
Mutual labels:  schema, validation

Govalid godoc Build Status Coverage Status License: Unlicense

Govalid is a data validation library that can validate most data types supported by golang. Custom validators can be used where the supplied ones are not enough.

import v "github.com/gima/govalid/v1"

Example

Create a validator:

schema := v.Object(
	v.ObjKV("status", v.Boolean()),
	v.ObjKV("data", v.Object(
		v.ObjKV("token", v.Function(myValidatorFunc)),
		v.ObjKV("debug", v.Number(v.NumMin(1), v.NumMax(99999))),
		v.ObjKV("items", v.Array(v.ArrEach(v.Object(
			v.ObjKV("url", v.String(v.StrMin(1))),
			v.ObjKV("comment", v.Optional(v.String())),
		)))),
		v.ObjKV("ghost", v.Optional(v.String())),
		v.ObjKV("ghost2", v.Optional(v.String())),
		v.ObjKV("meta", v.Object(
			v.ObjKeys(v.String()),
			v.ObjValues(v.Or(v.Number(v.NumMin(.01), v.NumMax(1.1)), v.String())),
		)),
	)),
)

Validate some data using the created validator:

if path, err := schema.Validate(data); err == nil {
	t.Log("Validation passed.")
} else {
	t.Fatalf("Validation failed at %s. Error (%s)", path, err)
}
// Example of failed validation:

// Validation failed at Object->Key[data].Value->Object->Key[debug].Value->Number.
// Error (expected (*)data convertible to float64, got bool)

You can also take a look at the "tests/" folder. (Sorry, but if you feel more documentation is needed, please open an issue.)

Similar libraries

Go check
Javascript js-schema, jsonvalidator
Python voluptuous, json_schema
Ruby json-schema

Original idea for jsonv (version 0 of this library, before rename) loosely based on js-schema, thank you.

License

http://unlicense.org
Authoritative: UNLICENSE.txt
Mention of origin would be appreciated.

jsonv, jsonv2, json validator, json validation, alternative, go, golang

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].