[ANN] ReScript Package Index Release

Hi everyone!

We are happy to announce the initial release of our new ReScript Package Index. The goal was to provide a handy search experience for the whole ReScript ecosystem, that is seamlessly integrated in the documentation website.

Features:

  • Data fetched from npm (indexes all packages that are tagged with the rescript keyword). Right now the index rebuilds every 6 hours. The index is statically generated, so there will never be an outtake if npm goes offline.
  • Additionally features hand-curated resources that are tracked within the rescript-lang.org Github repository
  • Provides simple guidelines on how to publish your own package (will be extended with more details in the future)
  • Categories and filters for official / community resources
  • Client-side based fuzzy searching

Check it out here:

We need your help to shape the index

Right now the index is pretty minimalistic, so you’ll probably notice that there are many libraries, tools and bindings missing from the original ReScript ecosystem. We need the community to help us migrate as many packages as possible to the new package index.

Of course one could just add a rescript keyword in their package.json and call it a day, but I’d like to take it one step further and ask you to help us shape a consistent ecosystem experience by following these rough guidelines:

  • Don’t use any bs- / reason- prefix in the package name, use rescript- instead (bs-platform / reason-react is currently an exception and will be renamed with the next major release)
  • Make sure to provide a one-liner description field in your package.json as well, otherwise it will only show the first line of your README in the package index, which is often not useful.
  • If possible rename any occurrence of “OCaml” and “BuckleScript” to “ReScript” to stay consistent with the rest of the toolchain (we filter common package.json keywords such as reasonml, bucklescript, ocaml and rescript, on the package index already, so these words don’t show up in the package index UI).
  • Ideally, new packages / bindings are curated in ReScript syntax (but it’s understandable if there are still old libraries curated in Reason syntax)
  • Make sure to have ReScript based examples in your README / docs, so ReScript users know how to use them

If you can’t find your favourite ReScript package on our index, ping the responsible maintainers to update their package.json metadata / READMEs, so it will show up in the future.


We are open for feedback and ideas to improve the package index experience. Make sure to open an issue on the rescript-lang.org issue tracker to kick off the discussion.

We hope you like it!

20 Likes

Looks like “Rescript” keywords are not being indexed? Maybe we make that case insensitive?

Edit: Looks like that is not the issue, I have some other published npm packages with the “rescript” keyword and they are still not showing in the list.

1 Like

Awesome project.

I was missing something, though. :slightly_smiling_face:

Which fields does the fuzzy searching cover? My rescript-fast-check package is in the list, but searching for “fast” doesn’t show it.

None of my packages are in the list, which have all been published after this was released and also include the rescript keyword.

npm limits query size to 20 by default. Increased it to 250 now, but need to check how to reliably get all results in the future (the pagination api docs are non-existent unfortunately)

I’m thinkig about just showing packages which are submitted to rescript package index (maybe via a github repo resciprt-lang/package-index)

1 Like

Might be worth slowly shifting towards a backend with one of the search products (e.g. elasticsearch) indexing some store with easy decentralized editing such as the popular folder backed by a github repo. I’ve only used “sphinx search” firsthand.

1 Like

Yeah, definitely might be worth considering.