Skip to content

What is Flora

Théophile Choutri edited this page Jan 2, 2022 · 7 revisions

What is Flora?

Flora is an unofficial alternative index for the Haskell ecosystem. It aims at providing a better experience when looking for packages in the ecosystem, and addressing long-standing shortcomings that the existing tooling have accumulated.

But can't you simply patch Hackage?

Short answer: We already contribute to Hackage.

Long answer: Hackage has made certain decisions that go in the opposite direction to where I am going. Operational concerns, and the need for utter stability prevent some of our ideas and method from being fully applicable in the context of Hackage. Moreover, cross-pollination is a thing, and I hope not only to get good ideas from Hackage & Cabal, but contribute to their evolution myself. No conflict, no influence war, no ecosystem splitting. This is done hand-in-hand, in both cooperation and competition.

So, what changes?

Data storage

  • Using PostgreSQL instead of an in-memory data store
  • Less RAM-hungry than Hackage for similar workloads
  • Sustainable reverse-dependencies graph

User Interface

  • Accessibility, especially through ARIA
  • Responsive interface
  • Dark and Light modes

Data model

  • Categories are curated to remove duplicates and redundancy
  • Namespaces, to avoid conflict for a name. When used in read-only copy of Hackage, two namespaces exist: @haskell, for core and boot libraries, and @hackage for the rest.

And then…

Flora is not only built to replicate hackage.haskell.org, but also to be a stand-alone repository.
By being built with 12-Factor principles and PaaS in mind, it is meant to be easy to deploy and monitor.

However, priority will be given to being a read-only alternative index of hackage.haskell.org first.

Clone this wiki locally