An RPC framework using JSON over HTTP
Babel is a tool for defining web service interfaces in a compact way and generating client and server code in multiple programming languages. It helps produce consistent, discoverable, and easy to consume web services.
It takes a serious effort to produce great web services.
Additionally, developers spend way too many hours writing all the components of a service call.
Babel starts with a contract - an “interface definition language” file (or “babel file”). The babel file can be fully documented and immediately used to generate server code, client code, and a test harness. Babel supports multiple programming languages, so you can generate your server components in Java and your client components in C#.
Babel uses JSON over HTTP for all calls. While not a strictly RESTful API, Babel’s APIs conform to web standards and can easily be called from code where Babel clients could not be used.
Documentation comments from the babel file are written to all the generated code and test harnesses, enabling IDEs to display help for developers.
Each API gets a fully working test harness (including documentation) so that you can try out the API by hand.
Babel supports syntax highlighting in Eclipse, Visual Studio, and Sublime Text 3.
Babel lets you define constants, enumerations, structures, and services. The Babel runtime libraries let you customize metrics, error logging, error mapping, and more. Check out the documentation to learn more.
The Babel runtime libraries allow you to separate your service implementation from any web framework sitting on top of it. This design is more flexible and allows you to use your core functionality in other contexts.
In addition to supporting multiple languages, Babel runs on Linux, Mac, and Windows.