# BLE

[![CI](https://github.com/lohit-dev/broken-link-checker/actions/workflows/ci.yaml/badge.svg)](https://github.com/lohit-dev/broken-link-checker/actions/workflows/ci.yaml) [![Releases](https://img.shields.io/github/v/release/lohit-dev/broken-link-checker?include_prereleases)](https://github.com/lohit-dev/broken-link-checker/releases)

Broken link checker. Crawls a URL or local file, finds links, and reports which are broken (404 or 5xx).

## Install

**From GitHub Releases** (pre-built binaries)

Download the latest build for your platform from the [Releases](https://github.com/lohit-dev/broken-link-checker/releases/latest) page. On Unix, make the binary executable and add it to your `PATH` if needed.

**From crates.io** (requires Rust)

```bash
cargo install broken-link-checker
```

The installed binary is named `ble`.

**From source**

```bash
git clone https://github.com/lohit-dev/broken-link-checker
cd broken_link_checker
cargo build --release
```

Add `target/release` to your `PATH`, or copy `target/release/ble` (or `ble.exe` on Windows) to a directory already on your `PATH`.

Config: `Settings.toml` (timeouts, redirects, checker options).

## Usage

```
Usage: ble [OPTIONS] [URL]

Arguments:
  [URL]

Options:
  -f, --file <FILE>
      --timeout-seconds <SECONDS>
      --max-redirects <COUNT>
  -d, --max-depth <DEPTH>
  -c, --max-concurrent-requests <COUNT>
      --same-domain-only <SAME_DOMAIN_ONLY>          [possible values: true, false]
      --check-external-links <CHECK_EXTERNAL_LINKS>  [possible values: true, false]
      --ignore-ssl-errors <IGNORE_SSL_ERRORS>        [possible values: true, false]
      --retry-attempts <COUNT>
  -o, --output-format <FORMAT>
      --show-successful <SHOW_SUCCESSFUL>            [possible values: true, false]
  -h, --help                                         Print help
```

**Note:** 25 tests have been written manually to cover common cases. Additional tests for edge cases, as well as documentation, are generated by AI.

## Planned

1. **Parallelism** – concurrent link checks (respecting `max_concurrent_requests`)
2. **Colors / beautification** – improved terminal output
3. **Optimization** – resource and efficiency improvements

---

License: MIT. For contributing, see [CONTRIBUTING.md](CONTRIBUTING.md).
