9 ms·
Try Bruno - https://github.com/usebruno/bruno https://github.com/usebruno/bruno - Free and Opensource IDE for exploring and testing APIs - It is lightweight w
by helloanoop 3y ago
Try Bruno - https://github.com/usebruno/bruno https://github.com/usebruno/bruno
- Free and Opensource IDE for exploring and testing APIs
- It is lightweight with MIT license
- Bruno stores your collections directly in a folder on your filesystem
- Use git for collaboration
- No cloud sync. Fully offline.
PS: I am the creator of this project
- fractalf 3y agoAwesome! I've spend 30 minutes searching for an alternative, but it's all crap. This looks really good! Simple light weight, we basically just need a simple gui over curl.. Thank you for this May I ask why .bru? I would really recommend using a standard format. https://xkcd.com/927/ https://xkcd.com/927/ etc..
- helloanoop 3y agocheckout this github discussion: https://github.com/usebruno/bruno/discussions/360 https://github.com/usebruno/bruno/discussions/360
- vladsanchez 3y agoNever knew of Bruno, but it's just what everyone wants and needs! Tired of Postman and Insomnia bloat. Code-generation would be a great feature. Good job!
- ReptileMan 3y agoProbably not a question you like to hear - but right now if I decide to jump from offline postman or insomnia - which will be the biggest pain points that I am to expect? Edit: And good luck, I have looked quite a bit for project like that.
- helloanoop 3y agoOauth2 flow is missing (which should be released by tomorrow), Otherwise you shouldn't encounter any pain points. The app has been in development over 2 years, and community (early adopters) has been using it for over year. It's fairly stable except the occasional blip. I built the tool for myself, I wanted my collections to co-exist alongside my backend code and be able to version it via git. So I ended up creating a human readable markup language to represent requests so that we can use git to version it. I hope you like it :)
- PH95VuimJjqBqy 3y agoI see the claim of saving everything on the filesystem and collaboration via git. - Is there a way to handle secrets outside of this flow? - Can we set/reference variables between collections? collection A sets a variable, collection B uses it. also, a small bit of feedback from someone that briefly played with Bruno this morning. - moving requests in a collection via drag/drop isn't obvious and it's actually a pain if you're trying to replace the top item. - if I duplicate a request I want the new request highlighted and I would personally prefer if the same tab was opened
- helloanoop 3y ago> I see the claim of saving everything on the filesystem and collaboration via git. yes, ALL IN on git :) based collaboration > Is there a way to handle secrets outside of this flow? Check: https://docs.usebruno.com/secrets-management/overview.html https://docs.usebruno.com/secrets-management/overview.html Two ways of handling secrets. > collection A sets a variable, collection B uses it. In bruno collection is the first class citizen, environments reside inside a collection. There is plan to support global environments for the use case you mentioned. > moving requests in a collection via drag/drop isn't obvious and it's actually a pain if you're trying to replace the top item. yes, this ux needs to be improved and there is a bug in drag and drop which should be fixed.
- PH95VuimJjqBqy 3y agoExcellent, thank you for the quick response. I'm guessing your recommendation for dealing with separate environments (dev/qa/etc) would then be a single collection with folders underneath and environments defined w/i that collection. In that sense collections for bruno seem to be more akin to "projects" and are not really equivalent to postman collections in that sense. That's workable, it good to know the environments are collection specific rather than global.
- helloanoop 3y agoExactly!
- bafe 3y agoThanks! This looks great! I like the local first (or local only) approach of your tool. It's very refreshing in comparison to the bloated monsters like campfire or postman
- helloanoop 3y agoyup! every postman alternative just follows postman playbook starts as offline vc funding enables cloud sync for collaboration with teams deprecates offline as scratchpad deletes scratchpad Its been like this for a decade now. With Bruno the key insight was to store collections and requests as folders and files, and design a markup language that makes it easy to collaborate with your team. I wrote about this here: https://www.usebruno.com/blog/the-saas-dilemma https://www.usebruno.com/blog/the-saas-dilemma
- bafe 3y agoMy only doubt is whether you need to design a special "language" to store the queries/configurations. Wouldn't it be easier to leverage existing languages, maybe something like dhall?
- helloanoop 3y agoYes, The language itself went through many iterations. You can look at these 3 iterations here: https://ibb.co/8j8yM1f https://ibb.co/8j8yM1f First was break a giant collection json and save it as individual files, second attempt was to convert into a dsl (was a bit like xml), the third attempt that is used today to make it even simpler. The key driving force behind the language design was to make sure that it was simple and readable enough to be able to do a PR review flow in git. Also, simple enough so that you can open the collection folder in a editor (like vscode) and still be able to make changes Json didn't support multiline strings. Yaml was indentation hell. I wanted something neat, no need for quotes around strings. And lot of nuances, like how do you store a query param as disabled. you can read more about the lang design at: https://docs.usebruno.com/bru-language-design.html https://docs.usebruno.com/bru-language-design.html
- 3y ago
- pleoxy 3y agoStop. We don't talk about Bruno. /S Sorry, couldn't resist. :)
- helloanoop 3y agoWe don't talk about Bruno. no. no. no :) We don't talk about bruno. BTW, GRPC will be supported soon. Will create a roadmap section in the docs.
- out_of_protocol 3y agoI think docs need simple list of what exactly supported (and what is not) by the Bruno. E.g. is GRPC supported?
- pseudalopex 3y ago> Fully offline. There is telemetry. And I didn't find opt in or even opt out code. > lightweight Could you quantify? I never saw a lightweight Electron app.
- helloanoop 3y agoAnother benefit of electron is that it allows the community to quickly contribute and improve the project via PRs In the last 5 days, Bruno received 25 PRs. I've already merged 21 of them and shipped multiple releases.
- pseudalopex 3y agoI didn't ask why you used Electron. I asked you to quantify lightweight. And every release was a chance to respect consent.
- helloanoop 3y ago> There is telemetry. yes, its miniscule. one ping (and that too once in a day) that indicates that an anonymous user opened the app. No other usage details, micro interactions or anything else is tracked. Sure - in the future we will provide option to turn this off too. > Could you quantify? I never saw a lightweight Electron app. relatively, compared to the other electron monsters out there. You are definitely not going to native performance and fluidity, but it's a tradeoff that I made to support multiple os. Also, currently Bruno is just me developing it for the last 2 years. Recently a community has formed around (nice to see) and we have a flurry of new contributors.
- pseudalopex 3y agoUsers decide what is miniscule. Everyone collecting data without consent thinks they are justified. And fully offline means fully offline. It is hard to trust false claims and defensiveness.
- okeuro49 3y agoI think Electron is fine for an application like this. Not much to gain for making a completely bespoke platform UI for a dev tool, and a lot of pain.
- mch82 3y agoHave you considered affiliating your project with the Linux Foundation or a similar organization?
- helloanoop 3y agoNot yet. It's at a very early stage.
- isbvhodnvemrwvn 3y agoAnd yet it pretty much has 80% of the value that Postman provided to me. There is some missing polish (like missing utilities in scripts or buggy drag-and-drop) and a couple bigger things like no authorization schemes or code export, but the killer thing it has over pretty much all the competition is the JS glue code AND first-class VCS support. Even insomnia had garbage-tier glue code support, something that was very much missing coming from Postman. Great work!
- helloanoop 3y agoYup, the JS glue code is something that I am very proud of. You can install any npm package via package.json. Require them inside your scripts and it just works. In every other tool, they treat a collection like something that can be modified only via GUI. In Bruno, its more of a developer mindset. Even if you don't have Bruno GUI, you can open it in an editor and make changes to it - just like code External npm package installation is unique to Bruno and afaik no other tool has this. Yes Auth is a big task that I am working on. Glad to see that some folks use scripts and directly implement oauth2 https://github.com/usebruno/bruno/issues/178 https://github.com/usebruno/bruno/issues/178 Many users are surprised when they find this capabilty, It opens up a lot of possibilities - https://github.com/usebruno/bruno/issues/233#issuecomment-1740656287 https://github.com/usebruno/bruno/issues/233#issuecomment-17...
- helloanoop 3y agoBuggy drag and drop is fixed now in v0.16.6
- SergeAx 3y agoGreat product, thank you so much! I am curious: why the request to support OpenAPI turned up only 2 weeks ago? In my bubble it is an ubiquitos format where everything starts and from where any additional data added up.
- isbvhodnvemrwvn 3y agoIt's actually been up for almost a year, but many issues are not de-duplicated: https://github.com/usebruno/bruno/issues/81 https://github.com/usebruno/bruno/issues/81
- ankmahato 3y ago[dead]
- skrowl 3y ago[dead]
- kurare 3y agoI installed its just what I need! I used insomnia for quite a while because postman has become completely unusable bloated piece of crap and now it seems insomnia will do the same.