Scriptable http integration testing
  • Rust 91.2%
  • Python 8.3%
  • Shell 0.5%
Find a file
2026-06-13 19:06:33 +07:00
book Apply the newest patch 2026-06-13 19:06:33 +07:00
scripts Apply the newest patch 2026-06-13 19:06:33 +07:00
src Apply the newest patch 2026-06-13 19:06:33 +07:00
test Apply the newest patch 2026-06-13 19:06:33 +07:00
.gitignore Apply the newest patch 2026-06-13 19:06:33 +07:00
.pre-commit-config.yaml Apply the newest patch 2026-06-13 19:06:33 +07:00
Cargo.lock Apply the newest patch 2026-06-13 19:06:33 +07:00
Cargo.toml Apply the newest patch 2026-06-13 19:06:33 +07:00
LICENSE Initial commit 2025-05-18 14:03:13 +07:00
ncurl.py Apply the newest patch 2026-06-13 19:06:33 +07:00
README.md Fix a typo 2026-06-13 18:27:09 +07:00

Crates.io Docs.rs License

Tip

Hosted on Forgejo and mirrored on GitLab for people without local accounts. Issues and MRs are welcome everywhere. Visit https://lovie.dev/code for more info.

NeoCurl

A command line tool to test servers.

Read the book for quick start and guide.

Features

  • Sending requests
  • Asserts
  • Logs
  • Third-party libs
  • Async requests

Example

import neocurl as nc

@nc.define
def get(client):
    response = client.get("https://httpbin.org/get")
    nc.info(f"Response status: {response.status}, finished in {response.duration:.2f}ms")
    assert response.status_code == 200, f"Expected status code 200, but got {response.status_code} ({response.status})"
    response.print()