Skip to content
/ Hayden Public

Ultra-low resource 4chan/altchan thread and board archiver

License

Notifications You must be signed in to change notification settings

bbepis/Hayden

Repository files navigation

logo

Hayden

LIVE TESTING INSTANCE

Hayden is a 4chan / altchan archiver written in .NET Core for ultra-low resource usage and high performance.

It also doubles as imageboard software.

It was originally writen as a drop-in alternative to Asagi, however Asagi compatibility currently has no guarantees.

Developer documentation is in ARCHITECTURE.md.

README for running the scraper

README for running the webserver / imageboard

 

Supported imageboard software

Detailed information

Software API-less fallback Example sites
Yotsuba 4chan.org
LynxChan 8chan.moe
endchan.org
Vichan/Infinity (not OpenIB/8kun) sportschan.org
smuglo.li
InfinityNext 9chan.tw
Meguca / shamichan 2chen.moe
shamik.ooo
FoolFuuka desuarchive.org
Ponychan ponychan.net
ASPNetChan mlpol.net

Features

  • Much smaller memory consumption than Asagi.

    • For comparison, Hayden requires roughly 40MB of working memory to archive a single board (including all archived threads), while Asagi consumes several gigabytes to do the same.
  • Uses a much more efficient algorithm to perform API calls, reducing overall network calls made considerably and eliminates cloudflare rate limit issues.

  • Supports using multiple SOCKS proxies to distribute network load and allow parallel network operations.

  • Supports writing to multiple types of data stores.

Planned

  • Thread ID-based scraping system. Currently the only logic for thread archival operates on a per-board basis

 


Frontend screenshots

 

FAQ

Why make it?

I wanted to archive 4chan threads and display them, but didn't like what was already offered. As per usual, this turned into making a very large project to do so.

Why C#? Doesn't it have a GC like Java and other managed languages, and consume a lot of memory as a result?

Yeah sure. Maybe you could get better performance / memory usage out of something like Rust.

But you could also just not be wasteful and be considerate of how you structure your data, and achieve very similar results?

What's with the name?

I was listening to the Doom 2016 soundtrack as I was programming this.

I was not a fan of Eternal.