crawly 0.1.0

A lightweight async Web crawler in Rust, optimized for concurrent scraping while respecting `robots.txt` rules.
Documentation
# Contributing to crawly 🕷️

First off, thank you for considering contributing to `crawly`! It's people like you that make `crawly` such a great tool.

## Code of Conduct

Every community member is expected to follow our [Code of Conduct](CODE_OF_CONDUCT.md). Please make sure you are welcoming and respectful to everyone.

## Where can I ask for help?

If you have any questions, feel free to ask in the [issues section](https://github.com/CrystalSoft/crawly/issues). Label your issue as `question`.

## How to contribute

1. **Fork the repository**: Start by forking the `crawly` repository.

2. **Clone the forked repository**:

```bash
git clone https://github.com/YOUR-USERNAME/crawly.git
cd crawly
```

3. **Create a new branch**:
```bash
git checkout -b my-new-feature
Make Changes: Add your feature or fix bugs and make sure to commit your changes.
```

4. **Push to GitHub**:
```bash
git push origin my-new-feature
```

5. **Submit a Pull Request**: Go to the crawly GitHub page and click on "New Pull Request". Select your fork and the branch you created. Click "Create Pull Request".

6. **Address Feedback**: Sometimes, your changes might not be accepted as is. Typically, a maintainer will review and ask for any necessary changes before they merge it.

## 🐛 Reporting Bugs

1. **Check Existing Issues**: Ensure that the bug was not already reported by searching on GitHub under [Issues]https://github.com/CrystalSoft/crawly/issues.

2. **Provide Information**: If the bug hasn't been reported, open a new issue. Fill out the bug report with details like:
    - **Description of the problem**: A clear and concise description of what the bug is.
    - **Steps to reproduce**: Provide step-by-step sequence to reproduce the issue.
    - **Expected behavior**: Describe what you expected to happen.
    - **Actual behavior**: What actually happened.
    - **Screenshots**: If applicable, add screenshots to help explain the problem.
    - **Environment details**: Mention your OS, Rust version, and any other relevant details.

## ✨ Suggesting Enhancements

1. **Check Existing Issues**: Ensure that the enhancement hasn't been suggested by searching the [issues list]https://github.com/CrystalSoft/crawly/issues.

2. **Provide Information**: If you have a new idea, open a new issue. Detail the enhancement with:
    - **A clear and descriptive title**: This helps others understand the suggestion.
    - **Detailed description**: Explain the core ideas of the enhancement.
    - **Reasons**: Why do you believe this enhancement would be beneficial.
    - **Use case scenarios**: Describe how this enhancement might be used by end-users.

## 🛠️ Setting up your development environment

1. **Install Rust**: If you haven't already, install Rust by following the instructions [here]https://www.rust-lang.org/learn/get-started.

2. **Fork and clone**: Follow the steps mentioned in the "How to contribute" section.

3. **Build**: Run `cargo build` to ensure everything is set up correctly.

4. **Run tests**: Before pushing any changes, ensure you run and pass all tests with `cargo test`.

Remember, contributing isn't just about code! You can help by improving documentation, designing, and more. Every contribution is appreciated.