# What are the most used packages?

**URL:** <https://racket.discourse.group/t/what-are-the-most-used-packages/108>\
**Category:** General\
**Created:** [November 12, 2021, 11:32pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108 "2021-11-12T23:32:35Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [November 12, 2021, 11:32pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/1 "2021-11-12T23:32:35Z")

</div>

What are the most used Racket libraries, applications and languages?

I’ll admit I’m guilty of going whole releases without installing anything because the distribution has so much included.

If you reply with what you have installed I’ll tally it up!

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [November 12, 2021, 11:54pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/2 "2021-11-12T23:54:04Z")

</div>

I should go first

- gui-easy [gui-easy](https://pkgs.racket-lang.org/package/gui-easy)
- Qi [qi](https://pkgs.racket-lang.org/package/qi)
- metapict [metapict](https://pkgs.racket-lang.org/package/metapict)
- urlang [urlang](https://pkgs.racket-lang.org/package/urlang)

I also have some quickscripts and some plugins installed:

- DrComplete
- Files Viewer
- Sauron

---

<div class="post-metadata">

**Author:** ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)\
**Post date:** [November 13, 2021, 7:48pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/3 "2021-11-13T19:48:39Z")

</div>

I have a ton (20?) of personal packages installed, mostly not on the package server, I'm not going to count those.

Some of my favorites:

- frog : frog is indispensable in building my website. It basically _is_ my website.
- sugar : I use sugar all the time. Usually I'm reaching for frequency-hash, or one of the slicing functions.
- crypto : all of the standard crypto functionality.
- cover : check code coverage. This is an awesome package that I think isn't widely enough known. It really plays to Racket's strengths.
- handin : well, obviously useful if you're running a handin server.
- csv-reading : yep, reads CSV files
- csv-writing : I just can't seem to remember what this one does.
- html-parsing : parses html
- sxml : parses & processes xml
- pfds : purely functional data structures
- text-table : displaying tables for monospace fonts
- levenshtein : levenshtein distance. Almost seems like it should be a part of another package, just like
- t-test : that's all, just the t-test function.

I bet I've missed a bunch of others.

EDIT: yours are also really nice: I think I'm very likely to go for gui-easy at some point. Also, if I find limitations in threading or 2htdp/images, I should reach for Qi or metapict.

---

<div class="post-metadata">

**Author:** ![badkins](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/badkins/32/99_2.png) [@badkins](https://racket.discourse.group/u/badkins)\
**Post date:** [November 14, 2021, 5:33pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/4 "2021-11-14T17:33:45Z")

</div>

I don't think I've re-installed _all_ my packages since I switched to building from source, but since that's been a while, it looks like all I use for my recent projects are, in alphabetical order:

```auto
csv-reading
debug
frog
gregor
threading

```

I should confess that I may suffer from NIH more than most, but I'm trying to improve 🙂

---

<div class="post-metadata">

**Author:** ![scolobb](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/scolobb/32/108_2.png) [@scolobb](https://racket.discourse.group/u/scolobb)\
**Post date:** [November 14, 2021, 8:33pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/5 "2021-11-14T20:33:09Z")

</div>

I rely on the [generic graph library](https://docs.racket-lang.org/graph/index.html) quite a lot.

I am also an avid user of [Racket Mode](https://racket-mode.com/), which is one of the main reasons Racket is my favorite Lisp as of today.

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [November 14, 2021, 8:38pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/6 "2021-11-14T20:38:21Z")

</div>

As of Sunday evening the top 14 is

1. [threading](https://pkgd.racket-lang.org/pkgn/package/threading)
2. [text-table](https://pkgd.racket-lang.org/pkgn/package/text-table)
3. [gregor](https://pkgd.racket-lang.org/pkgn/package/gregor)
4. [urlang](https://pkgd.racket-lang.org/pkgn/package/urlang)
5. [sxml](https://pkgd.racket-lang.org/pkgn/package/sxml)
6. [sugar](https://pkgd.racket-lang.org/pkgn/package/sugar)
7. [sexp-diff-lib](https://pkgd.racket-lang.org/pkgn/package/sexp-diff-lib)
8. [sawzall](https://pkgd.racket-lang.org/pkgn/package/sawzall)
9. [qi](https://pkgd.racket-lang.org/pkgn/package/qi)
10. [parsack](https://pkgd.racket-lang.org/pkgn/package/parsack)
11. [mred-designer](https://pkgd.racket-lang.org/pkgn/package/mred-designer)
12. [markdown](https://pkgd.racket-lang.org/pkgn/package/markdown)
13. [html-parsing](https://pkgd.racket-lang.org/pkgn/package/html-parsing)
14. [cover](https://pkgd.racket-lang.org/pkgn/package/cover)

**Other popular packages:**  
unstable-pretty-lib, typed-stack, txexpr, search-list-box, syntax-macro-lang, static-rename-lib, scribble-abbrevs, reprovide-lang-lib, rackunit-spec, rackunit-abbrevs, rackjure, quickscript-extra, pollen, overeasy, nanopass, mischief, mcfly, http-easy, graph, gui-easy, frog, files-viewer, fancy-app, drcomplete, data-frame, csv-reading, al2-test-runner

**Honorable mentions:**  
webscraperhelper, upi-lib, text-block, tasks, t-test, srfi-171, sicp, sawzall-lib, sawzall-doc, Sauron, satore, rktfetch, rsound, rebellion, rascas, racket-paint, quickscript-competition-2020, pfds, numspell, net-jwt, mike, metapict, measures, levenshtein, lang-file-lib, irregex, interactive-brokers-api, html-writing, handin, global, ebuild, drwhitespace, drracket-one-dark, define2, debug, custom-load, csv-writing, crypto, cover-coveralls, counter, binaryio, bazaar, andlet, adjutor

You can find all the packages listed by [searching the package index](https://pkgd.racket-lang.org/pkgn/search).

_This is not science. My methodology is...questionable. The sample is the people who responded on r/racket, discord, discourse, slack, racket-users as of Sunday evening. It would be good to have a better understanding of what people use._

I hope everyone had a good weekend.

Stephen

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [November 14, 2021, 9:47pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/7 "2021-11-14T21:47:31Z")

</div>

> [@scolobb](#):
>
> I am also an avid user of [Racket Mode](https://racket-mode.com/), which is one of the main reasons Racket is my favorite Lisp as of today.

Racket-Mode is awesome!

---

<div class="post-metadata">

**Author:** ![robertpostill](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/robertpostill/32/53_2.png) [@robertpostill](https://racket.discourse.group/u/robertpostill)\
**Post date:** [November 15, 2021, 6:43am UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/8 "2021-11-15T06:43:17Z")

</div>

I am deeply interested in this. Mainly because I am looking for good racket code to read. So thanks for organising this.

The results of my raco pkg show:

- al2-test-runner - I just started looking at this to see if my tests could be more expressive
- beautiful-racket - Becuase it's a fabulous book and I'm enjoying following along
- cover - code coverage because I care
- gregor - I don't know how I'd do date things without it
- mock - mocks for TDD
- mock-rackunit - rackunit forms that augment for mocks
- txexpr - how I'm making HTML right now

Hope that helps 🙂

---

<div class="post-metadata">

**Author:** ![marc](https://avatars.discourse-cdn.com/v4/letter/m/8dc957/32.png) [@marc](https://racket.discourse.group/u/marc)\
**Post date:** [November 15, 2021, 9:28am UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/9 "2021-11-15T09:28:25Z")

</div>

Those that I am aware I import/use off the top of my head:

- gregor
- racket-mode
- threading
- rackunit
- web stuff: web-server, koyo, deta, north, marionette, db, forms, crypto
- scribble
- plot
- pict

Regarding methodology, I'd suggest grouping by use case. Mine is tilted heavily towards the web, and that shows, as well as occasionally using Racket to plot graphs.

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [November 15, 2021, 2:10pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/10 "2021-11-15T14:10:43Z")

</div>

Thanks @robertpostill !

> [@robertpostill](#):
>
> I am deeply interested in this. Mainly because I am looking for good racket code to read. So thanks for organising this.

Thats one of my reasons too! Thank you for participating.

> [@robertpostill](#):
>
> txexpr - how I'm making HTML right now

I haven't seen txexpr - I'll have to check it out. TYVM

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [November 15, 2021, 5:08pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/11 "2021-11-15T17:08:31Z")

</div>

Thank you @marc !

Categorisation is a good idea - I could have got that from the Package server. Next time.

I was wrong to exclude the packages that are included in the Racket distribution. I love scribble and plot, and **pict** has a special place in my heart. 🐟

[![image](https://global.discourse-cdn.com/free1/uploads/racket/original/1X/9404868f341320e248c5ce12d36c5a9b42fd5fc0.png)](http://pasterack.org/pastes/29314)

(PS [@admins](https://racket.discourse.group/groups/admins) can we have a standard fish emoji please?)

---

<div class="post-metadata">

**Author:** ![robertpostill](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/robertpostill/32/53_2.png) [@robertpostill](https://racket.discourse.group/u/robertpostill)\
**Post date:** [November 18, 2021, 2:03am UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/12 "2021-11-18T02:03:30Z")

</div>

txexpr I found via Jesse Alama ([https://lisp.sh/practical-html-generation-with-txexpr/](https://lisp.sh/practical-html-generation-with-txexpr/)). It's not like JSX/haml where you're writing templates then filling out the dynamic pieces. The major pro of that is you get a nice tree at the end and you can work with as you wish. The downside is I can't give off the source to a designer and have them collaborate with me easily. I'm going to take a look at using scribble for that job.

---

<div class="post-metadata">

**Author:** ![dannypsnl](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/dannypsnl/32/917_2.png) [@dannypsnl](https://racket.discourse.group/u/dannypsnl)\
**Post date:** [November 18, 2021, 5:23am UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/13 "2021-11-18T05:23:01Z")

</div>

1. framework(gui)
2. db
3. sql
4. plot

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [November 18, 2021, 10:28am UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/14 "2021-11-18T10:28:14Z")

</div>

> [@robertpostill](#):
>
> The downside is I can't give off the source to a designer and have them collaborate with me easily. I'm going to take a look at using scribble for that job.

What works best when working with designers?

---

<div class="post-metadata">

**Author:** ![kablooey](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/kablooey/32/226_2.png) [@kablooey](https://racket.discourse.group/u/kablooey)\
**Post date:** [November 18, 2021, 3:08pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/15 "2021-11-18T15:08:10Z")

</div>

Newbie here.

I've installed:

1. `threading` , which is ubiquitously useful
2. `bencode-codec`, aids [bencoding](https://en.wikipedia.org/wiki/Bencode) in Bittorrent applications
3. `graph` for tackling a couple of algorithmic problems
4. `sicp` when I started out, to follow SICP conveniently

I also use `racket-mode` in Emacs ocassionally.

Looking to install `qi` next.

---

<div class="post-metadata">

**Author:** ![robertpostill](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/robertpostill/32/53_2.png) [@robertpostill](https://racket.discourse.group/u/robertpostill)\
**Post date:** [November 19, 2021, 12:05pm UTC](https://racket.discourse.group/t/what-are-the-most-used-packages/108/16 "2021-11-19T12:05:17Z")

</div>

In re-reading that message I'm now aware that I'm indulging in sweeping generalisation 😬.

So perhaps a better way for me to put it is that when I've worked with designers in the past we've often used a pattern where I've "worked up" to the HTML and they've "worked down" to the HTML. So they've designed mockups in a tool like Figma, turned that to HTML and then I've provided the dynamic sections of content in code.

That works even when a callout like {{results\_table}} has gone into a larger HTML page. Because then the communication around things like CSS styling has been more "well I want the table to use these styles" and then I've taken a sample HTML table and used the styles given. And the designer can have relatively unfettered commit rights to the repository.

In some cases I've used markdown as a slightly less verbose HTML and the results have been OK. But as not as good as having real HTML with markers for dynamic content.

Does that make more sense?
