HN user

jicea

1,974 karma

GitHub

https://github.com/jcamiel

Posts205
Comments166
View on HN
jens.dev 1mo ago

When Let's Encrypt is valid but GitHub Actions still reject it

jicea
4pts0
daniel.haxx.se 1mo ago

A Human in Control

jicea
7pts1
www.lambrospetrou.com 1mo ago

FokosDB: Strongly consistent storage DB ontop of Cloudflare Durable Objects

jicea
2pts0
slumber.lucaspickering.me 2mo ago

Slumber a TUI HTTP Client

jicea
193pts69
news.ycombinator.com 2mo ago

Ask HN: Is grpcurl home page compromised?

jicea
4pts0
antonz.org 2mo ago

Solod v0.1: Go ergonomics, practical stdlib, native C interop

jicea
8pts2
medium.com 2mo ago

Hurl 8.0 Just Made Postman Collections Look Heavier Than They Need to Be

jicea
1pts0
hurl.dev 2mo ago

Hurl 8.0.0: run and test HTTP API with plain text

jicea
2pts0
lists.haxx.se 3mo ago

The time when we suffer from large amounts of AI slop is gone

jicea
31pts0
blog.postman.com 3mo ago

The New Postman Is Here: AI-Native and Built for the Agentic Era

jicea
1pts0
blog.rust-lang.org 3mo ago

What we heard about Rust's challenges (rewrited without LLM)

jicea
2pts0
socket.dev 4mo ago

Trivy under attack again: Widespread GitHub Actions tag compromise secrets

jicea
250pts83
github.com 4mo ago

Venom, run integration tests with efficiency

jicea
1pts0
socket.dev 5mo ago

Shai-Hulud-Style NPM Worm Hijacks CI Workflows and Poisons AI Toolchains

jicea
10pts0
blog.usebruno.com 5mo ago

Making YAML the Default in Bruno v3.1

jicea
1pts0
github.com 5mo ago

Interleaved HTML Streaming (Patching)

jicea
4pts1
codingismycraft.blog 5mo ago

Postman: From API Client to "Everything App"

jicea
2pts1
github.com 6mo ago

RFC: OpenCollection YAML Specification

jicea
1pts0
efpasia.github.io 6mo ago

The API Tooling Crisis

jicea
1pts0
github.com 7mo ago

Bruno v3 Preview Release

jicea
3pts0
hurl.dev 7mo ago

Hurl 7.1.0, the Pretty Edition

jicea
2pts0
deepwiki.com 8mo ago

AI documentation you can talk to, for every repo

jicea
169pts127
appwrite.io 8mo ago

Best Postman alternative options developers enjoy using

jicea
3pts1
smallcultfollowing.com 9mo ago

The Handle Trait

jicea
1pts0
neilmadden.blog 9mo ago

Rating 26 years of Java changes

jicea
5pts0
alfy.blog 9mo ago

How functional programming shaped and twisted front end development

jicea
134pts124
github.com 9mo ago

K6 Studio: desktop application for Mac/Windows/Linux to generate k6 test script

jicea
3pts0
github.com 10mo ago

Better Curl Saul: a lightweight API testing CLI focused on UX and simplicity

jicea
71pts13
vincent.bernat.ch 10mo ago

Akvorado release 2.0: collects network flows with IPFIX and sFlow

jicea
6pts0
github.com 11mo ago

Yaak, an intuitive desktop API client

jicea
8pts3
Just Use Curl 9 months ago

Hi maintainer of Hurl here, thanks for the link; Hurl is using libcurl as its HTTP engine (you can for instance use --curl to get an export of curl commands). In a few words, if you just use Hurl, you just use curl also...

If you're willing to use a CLI, you can try Hurl [1]. It's is an Open Source cli using libcurl to run and test HTTP requests with plain text. We use libcurl for the reliability, quickness and top features (HTTP/3 IPv6 for instance) and there are features like:

- requests chaining,

- capturing and passing data from a response to another request,

- response tests (JSONPath, XPath, SSL certs, redirects etc...)

There is nice syntax sugar for requesting REST/SOAP/GraphQL APIs but, at the core, it's just libcurl! You can export you files to curl commands for instance. (I'm one of the maintainers)

[1] https://hurl.dev

[dead] 9 months ago

Postman is currently down: it gives you time to try Hurl [1] an open source CLI to tests APIs/HTTP request s with plain text. Hurl is built on curl, so it's super reliable, designed to be used in CI/CD. Give it a try!

[1] https://hurl.dev

Processes and Threads 10 months ago

I'm sorry I must be really tired I don't understand certains animations when playing programs: in the first program, the 3rd instruction is 'PRINTI $0'. The instruction description is "print the integer stored in $a to the console". We have a first animation, a 0 that goes to the console, and a second animation, a 0 that comes from memory... Is the order right? What does represent the second animation? I must miss something obvious here....

Would be super cool if we could run programs step by step also!

The app is really super clean, I like it a lot (compare to Bruno for instance, one of your "competitor"). I see in the README that "Yaak is open source, but only accepting contributions for bug fixes.". It's an understandable statement, but it seems that there is also no way to post issues on the GitHub repo. Is there any reason for this (people could post issues without ever wanting to contribute imo). Anyway good job, I hope you'll get some traction!

We used Hurl to go from a ktor web server to a spring boot rewrite (Java/Kotlin stack). It was a breeze to have a kind of specifications test suite independent of the server stack and helped us a lot in the transition.

Another benefit is we built a Docker image for production and wanted to have something light and not tight to the implementation for integration tests.

Maintainer here, thanks for the feedbacks. 6-7 years ago, when we started working on Hurl, we started with a JSON then a YAML file format. We gradually convinced ourself to write a new file format and I completely understand that it might feel weird. We tried (maybe not succeeded!) to have something simple for the simple case...

I'm really interested by issues with the documentation: it can always be improved and any issues is welcome!

Guilty to have created yet-another-format for HTTP client! To "mitigate" this issue, you can use `hurlfmt` (distributed along `hurl`) that would allow you to export a Hurl file to JSON. You could then go from this JSON to another... It's not magic but it can help if you're going to change from Hurl to another thing.

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

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

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.

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

Hi, maintainer of Hurl [1] here.

We're trying to write "simple" Rust as far as we can, without going into too much optimisation: very little lifetime usage, no async stuff (just classic multi-thread directly from the last sample of the Rust book), liberal usage of clone, no macros, reusing crates for C libcurl and libxml binding, limiting dependencies. We could certainly gain a lot of performances but with this first simple approach, the binary is already "fast"... The only advice I would give for someone going into Rust is to not try to optimise everything from the start to get a first "feeling" of the language.

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

Hurl's maintainer here,

you can add asserts on response body, headers, certificate etc with Hurl [1]:

  GET https://example.org/api/tests/4567
  HTTP 200
  [Asserts]
  header "x-foo" contains "bar"
  certificate "Expire-Date" daysAfterNow > 15
  ip == "2001:0db8:85a3:0000:0000:8a2e:0370:733"
  jsonpath "$.status" == "RUNNING"
  jsonpath "$.tests" count == 25
  jsonpath "$.id" matches /\d{4}/
You can see how you can make various asserts here [2]

[1] https://hurl.dev

[2] https://hurl.dev/docs/asserting-response.html

Rest Easy 1 year ago

Hi, you may like Hurl [1] it's a cli based on curl to make REST call, add asserts on results, chains requests etc... I'm one of the maintainer

[1] https://hurl.dev

Genuine question: what's the GitLab equivalent of GitHub Actions?

I'm using GitHub Actions to easily reuse some predefined job setup (like installing a certain Python version on Linux, macOS, Windows runners). For these tyoe of tasks, I find GitHub actions very useful and convenient. If you want to reuse predefined jobs, written by someone else, with GitLab CI/CD, what can I use?

It's even nicer in Rust: there can be an "implicit" conversion between the error raised by foo and bar:

  fn foo() -> Result<(),FooError>
      bar()?
  
  fn bar() -> Result<(),BarError>
If FooError can be created from BarError, the compiler will insert the conversion call and errors bubbles up nicely.

Hi maintainers of Hurl here! We started very small also and HN helps us a lot to grow and gain popularity. Keep up the good work and the motivation!

The only advice I'll humbly give is to choose a "traditional" license, unless there is a very strong motivation to have a custom one.

I really like Armin "food for thought" articles and I'm also concerned with the dependencies attitude in Rust. I like the language a lot, but I cringe when I clone some project and see the number of dependencies... It's really a balance: when you add a dependency you get a lot of code for "free" but nothing is free: now you've potentially new bug/security failure/things to update. It's a balance.

On the article, two random thoughts:

- I like that the Rust standard lib is "tiny" and a lot of stuff is delegated to third-parties crates. I wish crates support namespaces (for instance std) so it's easier to see what dependencies are blesser. For the moment, you can obtain a good name, like http, and squat it forever (http being just an example, don't know if there is an actual crate)

- when you vendor a Rust project, does it vendor also the flag dependencies? For instance, Rand is dependent on Serde because of an optional flag for serializing a random generator. Serde loc should be ignored in that case if we count the code lines.

I maintain a Rust project that is ~50,000 loc [1]. I've never felt that compiling is slow, in the contrary it's always a pleasure to see how fast the project compiles (at least in debug).

In release, build time is longer but in this case, it's in the CI/CD so it doesn't bother me. We try to be very conservative with adding dependencies so it may help compilation time. Also I'm coming from a Java/Kotlin world so a lot of things appear like fresh air in comparison...

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

I don't understand why this is not the evident approach for everyone writing GitHub Actions/GitLab CI/CD yaml etc....

I've struggled in some teams to explained why it's better to extract your command in scripts (ShellCheck on it, scripts are simple to run locally etc...) instead of writing a Frankenstein of YAML and shell commands. I hope someday to find an authoritative guidelines on writing pipeline that promote this approach so at least I can point to this link instead of defending myself being a dinosaur!

As a maintainer of Hurl, I've been really curious about this product (while not affiliated at all)! It has been an interesting journey because I've seen how you can build something like this: first you start with a solid first simple iteration (just an editor of web script files), then slowly you add features around it and expand: a very good documentation, "chron" scripts, email alerts etc...

I'm using Skybear.net at work today to do web sites monitoring (SSL certificates and health check), simple but very effective... impressive for a one man work! I can see a future where (a lot of) other file format are supported (à la Postman, Bruno etc...), but I'm happy that Hurl has been chosen for starting.