Lama2
: Free, Lightweight & Collaborative API Client¶
The Problem¶
Most engineering teams have trouble collaborating on APIs or end up paying too much for Postman/Insomnia. Our 100% FOSS product Lama2 helps your team collaborate on APIs for free based on git, so that you can save money and avoid friction.
About¶
Lama2 is a Plain-Text powered REST API client & manager built for serious engineering teams.
Lama2 specifies the .l2
syntax for describing APIs, and implements a CLI to execute .l2
files. Engineers collaborate on .l2
files using version control. Lama2 integrates nicely with
IDEs and text-editors as well. Think of Lama2 as Markdown for APIs.
Benefits¶
- Plain-Text files: Store APIs in the Plain-Text
.l2
API files. Simple and human-friendly syntax. Learn basics within minutes! - Simple CLI: Launch the CLI tool
l2
on API files to make REST API requests. - Editor support: Invoke Lama2 from your favorite text editor or IDE. Helpful documentation and tool support to build editor extensions included.
- Longevity & track-ability: Commit
.l2
files togit
or other version control for long life & change tracking. - Collaboration: Share API repo with teammates and colleagues to collaborate
- Code generation: Convert
l2
API definitions into your preferred language/library, be it Python, Javascript, Java or many other options. - Powerful chaining: Chain multiple
l2
requests through embedded Javascript blocks - Documentation: Explore examples, how-tos, explanations, references, FAQ/RAQs, and diagrams. Documentation is a priority, so that you never have to get lost.
- Extensibility:
.l2
syntax is implemented as a recursive descent parser, based on a formal grammar. Dig into details and implement new syntax (ex: to supportwebsockets
)
Tip
Coming from postman? Let Lama2 help you convert Postman data dumps into a nice Plain-Text Lama2 repo.
Terminal Demo: A POST request¶
basic_post.l2
:
POST https://httpbin.org/post { "hello": "world" } --- _METADATA={ "api_name": "Basic POST", "sample_response": { "args": {}, "data": "{\"hello\":\"world\"}", "files": {}, "form": {}, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Content-Length": "17", "Content-Type": "application/json", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.1", "X-Amzn-Trace-Id": "Root=1-6686d0e6-336395f75a7f8a8b474a7563" }, "json": { "hello": "world" }, "origin": "20.235.244.147", "url": "https://httpbin.org/post" } }
Execute:
l2 basic_post.l2
VSCode Demo: The same POST request¶
Community and Support¶
- Full documentation @hexmos.com/lama2
- Report issues and propose improvements at Github issues
- Discuss with the community at Discord