It looks like Teleport is trying to do too many things.<p>Input validation systems are great - there's an excellent one for Python already, called Schematics (<a href="https://github.com/schematics/schematics" rel="nofollow">https://github.com/schematics/schematics</a>).<p>Declarative schema systems are also great - JSON Schema (<a href="http://json-schema.org/" rel="nofollow">http://json-schema.org/</a>) is the industry standard for JSON. The clever thing about JSON Schema is that it is itself written using JSON - so it's completely language independent. A JSON Schema is a document which you can a) version and b) upload to a schema repository like Iglu (<a href="https://github.com/snowplow/iglu" rel="nofollow">https://github.com/snowplow/iglu</a>). I don't see any equivalent non-language-tied schema approach in Teleport.<p>Thirdly, tooling to help document APIs is also a great aim - the go-to project here is Swagger (<a href="https://helloreverb.com/developers/swagger" rel="nofollow">https://helloreverb.com/developers/swagger</a>).<p>These are all huge problems _in themselves_, and the above solutions have lots of cross-platform tooling, developer mindshare and polyglot language support. I think you need to decide what problem you want Teleport to solve...
Hmm, so the types are not actually a part of the JSON output, but they live in a separate schema. That being the case, I would've preferred if this were built on top of <a href="http://json-schema.org/" rel="nofollow">http://json-schema.org/</a> instead of something entirely new and Python-specific.<p>It seems like for the past couple of years JSON-schema has been just below some critical treshold for it to take off. Why not define models with JSON schema instead of a custom format for each web framework? Why not use JSON schemas to build forms, validation logic and admin interfaces, like <a href="https://github.com/jdorn/json-editor" rel="nofollow">https://github.com/jdorn/json-editor</a> does? Why not document your API by specifying the JSON schema a GET request returns? (<a href="http://raml.org/" rel="nofollow">http://raml.org/</a> sort of does this).<p>Seems like a chicken and egg problem where currently the tools are not yet nice enough to merit widespread adoption, but with widespread adoption they'd get to be really nice and cross-platform.
How does this compare to something like transit[1]?<p>[1]: <a href="https://github.com/cognitect/transit-format" rel="nofollow">https://github.com/cognitect/transit-format</a>
Just use protocol buffers. This can't really be a serious competitor to json/thrift/protobuf with no benchmarks and only a python client, sorry.