AI prompts
base on The Rust web framework for lazy developers. <div align="center">
<h1><img src="https://raw.githubusercontent.com/cot-rs/media/6585c518/logo/logo-text.svg" alt="Cot" width="300"></h1>
[](https://github.com/cot-rs/cot/actions/workflows/rust.yml)
[](https://crates.io/crates/cot)
[](https://cot.rs/guide/latest/)
[](https://docs.rs/cot)
[](https://codecov.io/gh/cot-rs/cot)
[](https://discord.cot.rs)
[](https://github.com/sponsors/cot-rs)
[](https://opencollective.com/cot)
</div>
> [!WARNING]
> Cot is currently missing a lot of features and is **not ready** for anything even remotely close to production use.
> That said, you are more than welcome to try it out and provide feedback!
Cot is an easy to use, modern, and fast web framework for Rust. It has been designed to be familiar if you've ever
used [Django](https://www.djangoproject.com/), and easy to learn if you haven't. It's a batteries-included framework
built on top of [axum](https://github.com/tokio-rs/axum).
## Features
* **Easy to use API** — in many ways modeled after Django, Cot's API is designed to be easy to use and intuitive.
Sensible defaults make it for easy rapid development, while the API is still empowering you when needed. The
documentation is a first-class citizen in Cot, making it easy to find what you're looking for.
* **ORM integration** — Cot comes with its own ORM, allowing you to interact with your database in a way that feels
Rusty and intuitive. Rust types are the source of truth, and the ORM takes care of translating them to and from the
database, as well as creating the migrations automatically.
* **Type safe** — wherever possible, Cot uses Rust's type system to prevent common mistakes and bugs. Not only views
are taking advantage of the Rust's type system, but also the ORM, the admin panel, and even the templates. All that to
catch errors as early as possible.
* **Admin panel** — Cot comes with an admin panel out of the box, allowing you to manage your app's data with ease.
Adding new models to the admin panel is stupidly simple, making it a great tool not only for rapid development and
debugging, but with its customization options, also for production use.
* **Secure by default** — security should be opt-out, not opt-in. Cot takes care of making your web apps secure by
default, defending it against common modern web vulnerabilities. You can focus on building your app, not securing it.
## Getting Started
<a href="https://repology.org/project/rust%3Acot-cli/versions">
<img src="https://repology.org/badge/vertical-allrepos/rust%3Acot-cli.svg" alt="Packaging status" align="right">
</a>
To get started with Cot, you need to have Rust installed. If you don't have it yet, you can install it by following
the instructions on the [official Rust website](https://www.rust-lang.org/tools/install).
Then, you need to install cot-cli by running:
```shell
cargo install cot-cli
```
After that, you can create a new project by running:
```shell
cot new my_project
```
This will create a new project in the `my_project` directory. You can then navigate to the project directory and run
the following command to start the development server:
```shell
cargo run
```
**We recommend you to read the [official guide](https://cot.rs/guide/latest/) to learn more about Cot
and how to use it.**
### cot-cli packages
If you prefer to use your operating system's package manager to manage the `cot-cli` package, you can find it in the
repositories listed in the “Packaging status” badge on the right. Note that most of these packages are maintained by
the community, so you should always check what exactly is included in the package. Moreover, the version in the package
manager might not be the latest one, so we recommend just using the official package which can be installed with
`cargo install cot-cli`.
## Development
### Testing
Tests that require using external databases are ignored by default. In order to run them, execute the following in the
root of the repository:
```shell
docker compose up -d
cargo test --all-features -- --include-ignored
```
You can them execute the following command to stop the database:
```shell
docker compose down
```
## Star History
<a href="https://star-history.com/#cot-rs/cot&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=cot-rs/cot&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=cot-rs/cot&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=cot-rs/cot&type=Date" />
</picture>
</a>
## Contributors
<a href="https://github.com/cot-rs/cot/graphs/contributors">
<img src="https://contrib.rocks/image?repo=cot-rs/cot" />
</a>
Made with [contrib.rocks](https://contrib.rocks).
## License
Cot is licensed under either of the following, at your option:
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
* MIT License ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Cot by you shall be
dual licensed under the MIT License and Apache License, Version 2.0, without any additional terms or conditions.
", Assign "at most 3 tags" to the expected json: {"id":"13005","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"