{"id":13501805,"url":"https://github.com/guyskk/validr","last_synced_at":"2025-04-05T07:01:49.341Z","repository":{"id":1224771,"uuid":"41950667","full_name":"guyskk/validr","owner":"guyskk","description":"A simple, fast, extensible python library for data validation.","archived":false,"fork":false,"pushed_at":"2024-07-09T17:38:26.000Z","size":789,"stargazers_count":222,"open_issues_count":8,"forks_count":12,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-29T06:04:57.419Z","etag":null,"topics":["json-schema","validation","validator"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guyskk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-05T05:47:04.000Z","updated_at":"2025-01-08T18:27:15.000Z","dependencies_parsed_at":"2025-01-04T23:11:37.211Z","dependency_job_id":null,"html_url":"https://github.com/guyskk/validr","commit_stats":{"total_commits":367,"total_committers":6,"mean_commits":"61.166666666666664","dds":"0.21253405994550412","last_synced_commit":"24e0ad47848c091bab405faf443cdbaad6f0bcb1"},"previous_names":["guyskk/validater"],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guyskk%2Fvalidr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guyskk%2Fvalidr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guyskk%2Fvalidr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guyskk%2Fvalidr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guyskk","download_url":"https://codeload.github.com/guyskk/validr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299828,"owners_count":20916190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["json-schema","validation","validator"],"created_at":"2024-07-31T22:01:51.021Z","updated_at":"2025-04-05T07:01:49.149Z","avatar_url":"https://github.com/guyskk.png","language":"Python","readme":"# Validr\n\n[![github-action](https://github.com/guyskk/validr/actions/workflows/build-test.yml/badge.svg?branch=main)](https://github.com/guyskk/validr/actions/workflows/build-test.yml) [![codecov](https://codecov.io/gh/guyskk/validr/branch/master/graph/badge.svg)](https://codecov.io/gh/guyskk/validr)\n\nA simple, fast, extensible python library for data validation.\n\n- Simple and readable schema\n- 10X faster than [jsonschema](https://github.com/Julian/jsonschema),\n  40X faster than [schematics](https://github.com/schematics/schematics)\n- Can validate and serialize any object\n- Easy to create custom validators\n- Accurate and friendly error messages\n\n简单，快速，可拓展的数据校验库。\n\n- 简洁，易读的 Schema\n- 比 [jsonschema](https://github.com/Julian/jsonschema) 快 10 倍，比 [schematics](https://github.com/schematics/schematics) 快 40 倍\n- 能够校验\u0026序列化任意类型对象\n- 易于拓展自定义校验器\n- 准确友好的错误提示\n\n## Overview\n\n```python\nfrom validr import T, modelclass, asdict\n\n@modelclass\nclass Model:\n    \"\"\"Base Model\"\"\"\n\nclass Person(Model):\n    name=T.str.maxlen(16).desc('at most 16 chars')\n    website=T.url.optional.desc('website is optional')\n\nguyskk = Person(name='guyskk', website='https://github.com/guyskk')\nprint(asdict(guyskk))\n```\n\n## Install\n\nNote: Only support Python 3.5+\n\n    pip install validr\n\nWhen you have c compiler in your system, validr will be c speedup mode.\nOtherwise validr will fallback to pure python mode.\n\nTo force c speedup mode:\n\n    VALIDR_SETUP_MODE=c pip install validr\n\nTo force pure python mode:\n\n    VALIDR_SETUP_MODE=py pip install validr\n\n## Document\n\nhttps://github.com/guyskk/validr/wiki\n\n## Performance\n\nbenchmark result in Travis-CI:\n\n```\n--------------------------timeits---------------------------\n  voluptuous:default             10000 loops cost 0.368s\n      schema:default              1000 loops cost 0.318s\n        json:loads-dumps        100000 loops cost 1.380s\n      validr:default            100000 loops cost 0.719s\n      validr:model              100000 loops cost 1.676s\n  jsonschema:draft3              10000 loops cost 0.822s\n  jsonschema:draft4              10000 loops cost 0.785s\n  schematics:default              1000 loops cost 0.792s\n---------------------------scores---------------------------\n  voluptuous:default               375\n      schema:default                43\n        json:loads-dumps          1000\n      validr:default              1918\n      validr:model                 823\n  jsonschema:draft3                168\n  jsonschema:draft4                176\n  schematics:default                17\n```\n\n## Develop\n\nValidr is implemented by [Cython](http://cython.org/) since v0.14.0, it's 5X\nfaster than pure Python implemented.\n\n**setup**:\n\nIt's better to use [virtualenv](https://virtualenv.pypa.io/en/stable/) or\nsimilar tools to create isolated Python environment for develop.\n\nAfter that, install dependencys:\n\n```\n./bootstrap.sh\n```\n\n**build, test and benchmark**:\n\n```\ninv build\ninv test\ninv benchmark\n```\n\n## License\n\nThe project is open source under [Anti-996 License](/LICENSE) and [GNU GPL License](/LICENSE-GPL), you can choose one of them.\n","funding_links":[],"categories":["Python","Libraries in Python","Data Validation","Data validation"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguyskk%2Fvalidr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguyskk%2Fvalidr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguyskk%2Fvalidr/lists"}