Telepact is an API ecosystem for bridging programs across inter-process communication boundaries.
What makes Telepact different? It takes the differentiating features of the industry's most popular API technologies, and combines them together through 3 key innovations:
- JSON as a Query Language - API calls and
SELECT-style queries are all achieved with JSON abstractions, giving first-class status to clients wielding only a JSON library - Binary without code generation - Binary protocols are established through runtime handshakes, rather than build-time code generation, offering binary efficiency to clients that want to avoid code generation toolchains
- Hypermedia without HTTP - API calls can return functions with pre-filled arguments, approximating a link that can be followed, all achieved with pure JSON abstractions
These innovations allow Telepact to design for the minimalist consumer while giving clients the option to enrich the consumer experience by:
- Selecting less fields to reduce response sizes
- Generating code to increase type safety
- Using binary serialization to reduce request/response sizes
No query params. No binary field ids. No required client libraries.
It's just JSON in, and JSON out.
Schema:
- fn.helloWorld: {}
->:
- Ok_:
msg: stringRequest:
[{}, {"fn.helloWorld":{}}]Response:
[{}, {"Ok_": {"msg": "Hello world!"}}]Check out the full-stack example.
To learn how to write Telepact APIs, see the API Schema Guide. A JSON Schema is available for validation. For debugging local/runtime failures, see the Runtime Error Guide.
To learn how to serve a Telepact API, see the specific library docs:
For development assistance, see the SDK tool docs:
- CLI
- Conveniently retreive API schemas from running live Telepact servers, and use schemas to create mock servers and generate code bindings, all from the command line
- Browser Console
- Develop against a live Telepact server by reading rendered docs, drafting requests, and submitting live requests with json-friendly editors
- Prettier Plugin
- Consistently format your Telepact api schemas, especially the doc-strings
Find the latest versions of all libraries and sdks here. That page tracks published registry versions, which may lag the source tree between releases.
For further reading, see Motivation.
Telepact does have a few unorthodox design decisions. To be best informed, you should read the explanations in the FAQ.
Telepact is licensed under the Apache License, Version 2.0. See LICENSE for the full license text. See NOTICE for additional information regarding copyright ownership.