wbolster/emacs-direnv uses an approach that mutates global state,
allowing a direnv to bleed into unrelated buffers and contexts. For this
to work it must rereads the direnv every time you switch buffers, which
can be very slow.
purcell/envrc, on the other hand, makes env state buffer-local, so the
direnv only needs to be read once, when a is first initialized. This is
faster and less error prone. However, it's necessary to manually reload
the direnv if you've changed your .envrc outside of Emacs (with `M-x
envrc-reload` or `M-x envrc-reload-all`).