And @MangoIV has his own instance too! https://hoogle.mangoiv.com/
Might be worth force reloading, it respects dark mode now.
and a fancy looking one at that +1
Thanks for notifying the folks in #haskell-infrastructure. Though maybe there is some automatic alert that detects it’s down as well?
Thanks for the pointer about building it locally. I use nix though with cached builds, so if I changed it to build docs, I’m afraid I wouldn’t hit the cache anymore and it would take a very long time to build. Maybe I could talk to my coworkers about possibly caching another set of builds with docs?
Yes, I know of the one at Stackage, but it doesn’t search packages that are in Hackage but not Stackage.
Also, I’m thinking of all the new Haskellers who have been taught to use Hoogle and might be a little distraught and more likely to give up on Haskell at this point.
If you’re using the Nixpkgs infra, building docs should be the default afaik. There’s also a thing that gives you a hoogle for a package closure, I don’t remember the name though. In shellFor it might just be „withHoogle = true“
Nice one - maybe it could mention which packages it covers - eg “stackage lts-22.35”, “hackage 20240915” or some such.
I wanted to keep UI as clean as possible. But it should get regenerated each night (standard settings, so iirc that’s stackage smth?) (I’m checking regularly and it has been working well since I spun it up). Perhaps I’ll add a herald endpoint for that stuff. Maybe I should also look to generate a bit more? Dunno how important that is for you, if there’s some interest then maybe I’ll add it
I don’t need this myself at the moment, even as a fallback, so no pressure. But it’s always useful to know what you’re searching (and how to adjust the scope by adding packages if that’s possible).
It was really helpful to have this when hoogle.haskell.org was down, thanks for providing it.
I personally find the layout, fonts and colors of hoogle.haskell.org easier to read, though. It was especially difficult to read the purple text on a black background when in dark mode.
Thanks for the feedback. I have noticed that the darkmode has a bit of a problematic contrast, too. I will probably fix it soon.
That’s very nifty, thanks.
Is there a guide somewhere of how I can do this for a local cabal project with some private packages? Looks like there’s a way to generate a hoogle database using ‘local’ items and local haddocks, but it’s not very clear.
I have fixed that problem.
It really is. I might start using this by default now, not least because hoogle.haskell.org has been very slow recently. Thanks @MangoIV.
Hoogle appears to perhaps be slow because it is getting spammed with requests like the following. Anybody have an idea what could be generating them? Possibly some ide tool? We’d have to improve our logs to capture more traffic if we wanted to narrow it down further…
/?hoogle=Monad%20-is%3Amodule%20-package%3Ado-notation%20-package%3Agithub%20-package%3Adistribution-opensuse%20-package%3Abase%20-package%3Amorpheus-graphql-code-gen-utils%20-package%3ALambdaHack%20-package%3Atermonad%20-package%3Aghc%20-package%3Ario%20-package%3Abasement%20-package%3Aloc%20-package%3Aquaalude%20-package%3Ahaskell-gi-base%20-package%3Aclassy-prelude%20-package%3Abasic-prelude%20-package%3Amassiv-test
/?hoogle=Monad%20-is%3Amodule%20-package%3Ado-notation%20-package%3Agithub%20-package%3Adistribution-opensuse%20-package%3Abase%20-package%3Amorpheus-graphql-code-gen-utils%20-package%3ALambdaHack%20-package%3Atermonad%20-package%3Aghc%20-package%3Ario%20-package%3Abasement%20-package%3Aloc%20-package%3Amixed-types-num%20-package%3Ahedgehog%20-package%3Acabal-install-solver%20-package%3Aamazonka-core%20-package%3Aaudacity
/?hoogle=Monad%20-is%3Amodule%20-package%3Ado-notation%20-package%3Agithub%20-package%3Adistribution-opensuse%20-package%3Abase%20-package%3Amorpheus-graphql-code-gen-utils%20-package%3ALambdaHack%20-package%3Atermonad%20-package%3Aghc%20-package%3Ario%20-package%3Abasement%20-package%3Aloc%20-package%3Aclassy-prelude%20-package%3Ahledger-web%20-package%3Aprelude-compat%20-package%3Ayesod-paginator%20-package%3Acopilot-language
/?hoogle=Monad%20-is%3Amodule%20-package%3Ado-notation%20-package%3Agithub%20-package%3Adistribution-opensuse%20-package%3Abase%20-package%3Amorpheus-graphql-code-gen-utils%20-package%3ALambdaHack%20-package%3Atermonad%20-package%3Aghc%20-package%3Ario%20-package%3Abasement%20-package%3Aloc%20-package%3Anumeric-prelude%20-package%3Astack%20-package%3Abase-compat-batteries%20-package%3Aaudacity%20-package%3Arelude
Are these coming from the same IP addr.? Possible to rate limit requests per client? By no means fool proof, but should avoid the simpler abuse cases like these.
After some investigation it appears hoogle (like the rest of the internet) has been getting hammered by multiple AI bot scrapers – from everyone from apple to bytedance to chatgpt to petalbot and beyond (and some malicious ones that don’t even announce they’re scraperbots).
We turned on cloudflare protection and used its relatively new AI bot protection features to improve things quite a bit: https://blog.cloudflare.com/declaring-your-aindependence-block-ai-bots-scrapers-and-crawlers-with-a-single-click/
Wtill getting some malicious cloaked scrapers and some homegrown stuff scraping for exploits (ie. aws credentials or the like) but performance should be much improved. Thanks to all those on the irc channel that gave suggestions and advice!