frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Hurl: Run and test HTTP requests with plain text

https://github.com/Orange-OpenSource/hurl
137•flykespice•4h ago

Comments

laerus•3h ago
What's missing from Hurl is snapshot testing. After using `insta` for testing APIs, I cannot go back.
porker•3h ago
Is this https://insta.rs/? What are the benefits you've found with snapshot testing?
laerus•1h ago
Greatly reduced boilerplate. Diffing snapshots and providing previews to accept or reject changes is also more robust and user friendly.
whilenot-dev•2h ago
What's your value proposition for snapshots and why can't that already be fulfilled with full body checks? https://github.com/Orange-OpenSource/hurl?tab=readme-ov-file...
laerus•1h ago
Snapshots diff current with previous output and I only have to accept or reject the diff. I don't have to write the expected response myself. Snapshots can also stub out parts of the response that are not determistic.
adelineJoOs•11m ago
> Snapshots can also stub out parts of the response that are not determistic.

TIL! The way I knew to do it was to have a mock implementation that behaved like the real thing, expect for data/time/uuids/..., where there was just a placeholder. Snapshot tests being able to "mask" those non-deterministic parts sounds cool!

CommonGuy•1h ago
We are working on snapshot testing for Kreya, expected to come in August. You might want to check it out :)
jicea•3h ago
Hi Hurl maintainer here, happy to answer any question and get feedbacks!
jiehong•1h ago
Thanks a lot for maintaining it!

Where do you see hurl in the next 2 years?

jicea•1h ago
Obviously better IDEs integration, support for gRPC, Websocket would be very cool.

A favorite of mine is to be available through official `apt`: there has been some work but it's kind of stuck. The Debian integration is the more difficult integration we have to deal. It's not Debian fault, there are a lot of documentation but we've struggled a lot and fail to understand the process.

[1]: https://github.com/Orange-OpenSource/hurl/issues/366

hiddew•1h ago
Hurl is underappreciated for writing nice and maintainable HTTP-level test suites. Thanks for the tool!
chvid•3h ago
Looks a bit like this:

https://marketplace.visualstudio.com/items?itemName=humao.re...

Which is a banger VS Code extension for all sorts of http xyz testing.

krisgenre•2h ago
IntelliJ has one too https://www.jetbrains.com/help/idea/http-client-in-product-c...
7d24cbd0556f442•2h ago
neovim has one, too! https://github.com/rest-nvim/rest.nvim

(After I have seen the IntelliJ one from a colleague I was searching for one like that in neovim. That's the best one I found. It's not perfect, but it works.

Edit: The tool from OP looks very neat though. I will try it out. Might be a handy thing for a few prepared tests that I run frequently

vyskocilm•11m ago
https://github.com/mistweaverco/kulala.nvim is an another restish (it can do gRPC to) plugin for neovim. It is intended to be compatible with a Jetbrains as much as possible.
jiehong•1h ago
Yep, just editor independent which is a huge deal IMO
lowwave•23m ago
there is also Bruno and Bru seems quite similar this: https://docs.usebruno.com/bru-lang/overview

It is targeted toward more postman crowd though. May not be as lightweight.

mcescalante•1h ago
yep, I've played with Hurl and find it nice but recently have been leaning into the .http stuff more. IntelliJ has it built in, there's the plugin you linked, and then for CLI i've used httpYac. No "vendor lock in", really easy to share with copy & paste or source control.
davidcalloway•3h ago
The main thing I find missing with hurl is an rc file.
jicea•2h ago
If you're thinking about `--netrc` like curl it's already here [1]. If you're thinking about a proper Hurl config file, it's coming!

[1]: https://hurl.dev/docs/manual.html#netrc

the_arun•2h ago
Isn't this similar to HTTP Client tool available for IntelliJ? - https://www.jetbrains.com/help/idea/http-client-in-product-c...
resonious•2h ago
Similar perhaps but not an IDE plugin.
zoidb•2h ago
This looks great, would definitely use it for testing if websocket support ever gets added https://github.com/Orange-OpenSource/hurl/issues/1096
antisceptic•2h ago
Is that POST in the readme sending the password in the query params? Is this shorthand or literally adding them to the params?

I don't really feel the need for a curl replacement. In the past I've used httpie which is pretty slick but I end up falling back to writing tests in python using requests library.

Maybe I'm not the target audience here, but I should still say something nice I guess. It's nice that it's written in Rust, and open source tooling is in need of fresh projects ever since everyone started bunkering up against the AI monolith scraping all their work. We should celebrate this kind of project, I just wish I had a use for it.

ankitrgadiya•2h ago
I see it more as a Postman replacement than curl. When I’m working on a set of APIs, I can quickly write a Hurl file with different combinations that I’m working on. There are usually editor integrations to run individual requests. Then I can share the same Hurl file to my team or commit it in the repo.
tra3•2h ago
Check out tavern if you’re in python-land. Pretty pleasant way to write declarative API tests.
jicea•2h ago
The POST in the README is going to send the params in the request body "url form encoded" like a form in a web page. There are more samples on the doc site [1].

Regarding curl, Hurl is just adding some syntax to pass data from request to request and add assert to responses. For a one time send & forget request, curl is the way, but if you've a kind of workflow (like accessing an authentified resource) Hurl is worth a try. Hurl uses libcurl under the hood and you've an option `--curl` to get a list of curl commands.

[1]: https://hurl.dev/docs/samples.html

mrcarrot•1h ago
> The POST in the README is going to send the params in the request body "url form encoded" like a form in a web page.

Is there a different POST request in the readme or are you saying that this example is going to send the "user" and "password" params in the request body?

> POST https://example.org/login?user=toto&password=1234

That seems really surprising to me - how would you then send a POST request that includes query string parameters? The documentation on form parameters [1] suggests there's an explicit syntax for sending form-encoded request parameters

[1]: https://hurl.dev/docs/request.html#form-parameters

jicea•41m ago
Ah sorry for both, the README sample is here from the start (4 years) ago that I didn't take time to read it with a fresh eye:

  POST https://acmecorp.net/login?user=toto&password=1234
In the README is doing a POST request with user and paasword parameter in the URL.

  POST https://acmecorp.net/login
  [Form]
  user: toto
  password: 1234
Is a more traditional POST with user and password in the body. Probably going to update the READMEs sample Issue created here [1]!

[1]: https://github.com/Orange-OpenSource/hurl/issues/4151

the_arun•2h ago
If I want to open a modal & check something, could it simulate clicking on open modal button? Or is it first level for now (without any support for interactions / javascript magic)
jicea•2h ago
Hurl works only on the HTTP layer, there is no JavaScript engine. If your modal open a form that will trigger some kind of XHR, you'll "simulate" the HTTP traquets that the form modal could have done. Hurl is not a kind of Playwright for instance.
gabesullice•2h ago
This looks awesome. I've searched for something like this many times and made a half dozen half-hearted attempts to build it too. Great job!
kaan_keskin•1h ago
this looks nice. is it possible to set a variable after a request and use it later in another request?
mhio•1h ago
Yeah...

    [Captures]
    csrf_token: xpath "normalize-space(//meta[@name='_csrf_token']/@content)"
The use the name with mustaches

    {{csrf_token}}
- https://hurl.dev/docs/capturing-response.html
genericspammer•1h ago
Can you have different environments or profiles or whatever, with different global variables?
DownGoat•1h ago
Yes you can use env files, and then use the template syntax in the request files. https://hurl.dev/docs/templates.html#injecting-variables
1a527dd5•1h ago
Yeah love Hurl, we stared using it back in 2023-09.

We had a test suite using Runscope, I hated that changes weren't versioned controlled. Took a little grunt work and I converted them in Hurl (where were you AI?) and got rid of Runscope.

Now we can see who made what change when and why. It's great.

QuiCasseRien•47m ago
interesting tool !

première fois que je vois qqch de cool sortir d'orange.

jicea•17m ago
Ah ah ah thanks for this! There are a lot of Open Source projects from Orange => https://github.com/Orange-OpenSource
lelanthran•22m ago
For automated testing I use hurl, but my personal dev roadmap is to create another tool.

The deficiencies in huel with client state management is not easy to fix.

What I'd like is full client state control with better variable management and use.

For my last project I used Python to write the tests, which appears to work well initially. Dunno how well it will hold up for ongoing maintenance.

molszanski•16m ago
I am using it and I love it :)
a57721•9m ago
In the JVM projects, I use Karate for integration tests: https://github.com/karatelabs/karate

It gives you full control of constructing requests and assertions because test scenarios may include arbitrary JavaScript.

Anthropic triages OSS issues with Claude Code

https://github.com/anthropics/claude-code/blob/main/.github/actions/claude-issue-triage-action/action.yml
1•handfuloflight•25s ago•0 comments

Penpot's upcoming business model for 2025

https://community.penpot.app/t/penpots-upcoming-business-model-for-2025/7328
1•Tomte•1m ago•0 comments

Vector Database benchmark, streaming case and more

https://github.com/zilliztech/VectorDBBench
1•liliuleo93•1m ago•0 comments

Raindrop: Sentry for AI Agents

https://www.raindrop.ai/
1•handfuloflight•2m ago•0 comments

What happens to local SEO when nobody clicks anymore?

https://keyword.com/blog/local-seo-for-ai-search/
1•ShannonK_ASH•4m ago•0 comments

I Will Do Anything to End Homelessness Except Build More Homes

https://www.mcsweeneys.net/articles/i-will-do-anything-to-end-homelessness-except-build-more-homes
1•2color•11m ago•0 comments

Show HN: GitOps SemVer Script

https://github.com/DragosDumitrache/versioner
1•afterburner5•11m ago•0 comments

Learn Makefiles

https://makefiletutorial.com/
2•dsego•13m ago•0 comments

Break Up Big Tech: Civil Society Declaration – People vs. Big Tech

https://peoplevsbig.tech/break-up-big-tech-civil-society-declaration/
5•janandonly•16m ago•0 comments

Microsoft's next Xbox has an AMD chip and is 'not locked to a single store'

https://www.theverge.com/news/688407/microsoft-next-gen-xbox-cloud-amd
1•tosh•18m ago•0 comments

Your Mobile App, Their Playground: The Dark Side of the Virtualization

https://zimperium.com/blog/your-mobile-app-their-playground-the-dark-side-of-the-virtualization
1•fdb•19m ago•0 comments

AI giants trying to understand the output of LLM+"Agentic tools"=idea

1•AndresFer•20m ago•0 comments

JavaScript broke the web (and called it progress)

https://www.jonoalderson.com/conjecture/javascript-broke-the-web-and-called-it-progress/
3•Bogdanp•27m ago•0 comments

SAML vs. SSO

https://adaptive.live/blog/saml-vs-sso-and-why-they-re-not-enough-for-databases-and-critical-assets
2•debarshri•27m ago•0 comments

Talk with versions of you, on your phone

https://apps.apple.com/us/app/oniai-talk-to-past-future/id6747041505
1•alonrozi•37m ago•1 comments

Show HN: Gridogram – Find the quote of the day, hidden in optimised letter grid

https://www.gridogram.com/
2•jap•38m ago•0 comments

Radio industry unites to secure listening in connected cars

https://radiotoday.ie/2025/06/radio-industry-unites-to-secure-listening-in-connected-cars/
1•austinallegro•42m ago•0 comments

Gigantic dome that looks like an eyeball falls from sky on street during storm

https://www.aol.com/news/gigantic-dome-looks-eyeball-falls-013256426.html
1•Bluestein•44m ago•0 comments

Europe must bet bigger on young founders, tech leaders urge at TNW Conference

https://thenextweb.com/news/europe-bet-bigger-young-founders
2•amalinovic•44m ago•0 comments

How to Solve Cybersecurity Once and for All [pdf]

https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=11038978
1•ArneVogel•47m ago•0 comments

BBC threatens legal action against AI startup Perplexity over content scraping

https://www.ft.com/content/b743d401-dc5d-44b8-9987-825a4ffcf4ca
1•mmarian•48m ago•1 comments

Therapeutic apheresis: A promising method to remove microplastics?

https://genomicpress.kglmeridian.com/view/journals/brainmed/1/3/article-p52.xml
1•domofutu•50m ago•0 comments

Social Media Ban Moves Closer in Australia After Tech Trial

https://www.bloomberg.com/news/articles/2025-06-19/teen-social-media-ban-moves-closer-in-australia-after-tech-trial
3•gametorch•50m ago•0 comments

TikTok ban enforcement delayed another 90 days to September 17

https://appleinsider.com/articles/25/06/19/tiktok-ban-delayed-another-90-days-to-september-17
2•gametorch•51m ago•0 comments

Kadicon: A Minecraft Classic 0.30 server written in V

https://github.com/Sailing-With-Coffee/Kadicon
1•fork-bomber•54m ago•0 comments

Ask HN: How are you following tech blogs?

1•dnnsthnnr•58m ago•2 comments

Show HN: Mailfrom.dev – a cheaper MailTrap alternative (2-month update)

https://www.mailfrom.dev
1•danielebuso•58m ago•0 comments

Notes on "Andrej Karpathy: Software is changing(again)"

https://medium.com/@bingwuthu/andrej-karpathy-software-is-changing-again-notes-5d5ffe36055c
2•bingwu1995•58m ago•0 comments

Scientists discover promising new way to filter microplastics out of human body

https://www.yahoo.com/news/scientists-discover-promising-way-filter-104558970.html
1•01-_-•59m ago•0 comments

Ginkgo Biloba: Worth the Hype?

https://domofutu.substack.com/p/ginkgo-biloba-worth-the-hype
1•domofutu•1h ago•0 comments