1
Fork 0
mirror of https://git.madhouse-project.org/iocaine/iocaine.git synced 2026-11-03 15:56:43 +00:00
No description
  • Rust 84.7%
  • Nix 13.1%
  • Just 2.2%
Find a file
Gergely Nagy 43047a4b9e
iocaine-recipe: Drop supporting script config files
Temporarily drop support for script config files, and require script
configuration to be in-line. The reason for this is that `Blueprint`
must remain search-path agnostic, yet, it tried to load the file
immediately, which isn't what we want in the long run.
2026-11-03 10:27:17 +01:00
.forgejo ci/lint: Add a feature-test job 2026-10-31 20:23:12 +01:00
iocaine Implement asset search 2026-11-03 10:19:53 +01:00
iocaine-label Update the copyright attribution 2026-10-31 14:19:56 +01:00
iocaine-powder Update the copyright attribution 2026-10-31 14:19:56 +01:00
iocaine-recipe iocaine-recipe: Drop supporting script config files 2026-11-03 10:27:17 +01:00
iocaine-table Update the copyright attribution 2026-10-31 14:19:56 +01:00
LICENSES LICENSES: Remove CC-PDM-1.0 for now 2026-10-27 08:59:27 +01:00
nix Update the copyright attribution 2026-10-31 14:19:56 +01:00
share/etc Move the example/default config to share/etc 2026-11-03 09:42:48 +01:00
.envrc Update the copyright attribution 2026-10-31 14:19:56 +01:00
.gitattributes Update the copyright attribution 2026-10-31 14:19:56 +01:00
.gitignore Update the copyright attribution 2026-10-31 14:19:56 +01:00
Cargo.lock iocaine-recipe: Parse firewall allowlists too 2026-11-02 09:57:27 +01:00
Cargo.toml iocaine-recipe: Parse firewall allowlists too 2026-11-02 09:57:27 +01:00
CHANGELOG.md Merge branch 'iocaine-3.x' 2026-08-29 16:57:28 +02:00
CONTRIBUTING.md Add a CONTRIBUTING.md 2026-03-14 18:53:49 +01:00
flake.lock Lets start iocaine 4 with a clean slate! 2026-10-19 22:36:52 +02:00
flake.nix Update the copyright attribution 2026-10-31 14:19:56 +01:00
justfile Update the copyright attribution 2026-10-31 14:19:56 +01:00
README.md README.md: Replace the CI badges 2026-10-31 20:28:02 +01:00
REUSE.toml Update the copyright attribution 2026-10-31 14:19:56 +01:00

iocaine

Build status Demo Documentation AI? Fuck no.

The deadliest poison known to AI.

Warning

This is the development branch of iocaine, and contains breaking changes, and will continue breaking unexpectedly. We recommend using the stable branch in production.

Iocaine is a defense mechanism against unwanted scrapers, sitting between upstream resources and the fronting reverse proxy. It is designed to significantly reduce the load caused by the relentless attack of the Crawlers (mostly originating from various AI companies) in a way that does not place undue burden on benign visitors. While iocaine does support presenting a proof-of-work challenge, that should be a last resort, and even if that path is taken, the challenge is inexpensive for the human visitor.

Originally, iocaine started as a garbage generator, a tarpit, a place where the reverse proxy routed unwanted visitors, so that they'd crawl an infinite maze of garbage. Since then, it grew into a more ambitious project, and includes a scripting engine that lets the iocaine-operator tell the software how to treat each incoming request. The idea remained similar, however: keep the crawlers in the maze, and let the backend serve the real content for benign visitors.

Unlike some similar tools, iocaine does not try to make the bad bots go away, it welcomes them, into an infinite maze of garbage. It does so, because that makes it possible to serve them poisoned URLs, which in turn, makes it possible to identify bad actors even if they come back piggy-backing on a real browser. By filling their queue with junk when they visit with their simpler collectors, we can capture the browser-based scrapers in the maze too.

The garbage generator in iocaine has been engineered to require as few resources as possible, to keep it cheap, pretty much on par with serving a static file from the filesystem. The goal is to have a tool that costs next to nothing for the operator, reduces the load on upstream services, and protects them from the crawlers, while having no (or at worst, very little) effect on legit visitors, but making life of crawler operators difficult at the same time.

For more information about what this is, how it works, and how to deploy it, have a look at the dedicated website.

Lets make AI poisoning the norm. If we all do it, they won't have anything to crawl.

Sponsorship + Funding

Crowdfunding

If you would like to donate to @algernon to keep the lights on during development, you can do so via Liberapay. Other donation options are available too, feel free to contact him.

LiberaPay patrons receives via LiberaPay

NLnet

This project is receiving funding through NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.

NLnet foundation logo NGI Zero Logo