linenoise alternatives and similar packages
Based on the "User Interfaces" category.
Alternatively, view linenoise alternatives based on common mentions on social networks and blogs.
-
vty-ui
A terminal user interface programming library similar to graphical interfaces such as GTK and QT. (DEPRECATED, see https://github.com/jtdaugherty/brick)
SaaSHub - Software Alternatives and Reviews
Do you think we are missing an alternative of linenoise or a related project?
README
linenoise
A lightweight readline-replacement library for Haskell based on the linenoise
library. (Not production ready!)
See the demo app for usage, or see the climb library for higher-level building blocks for GHCi-like REPLs with colon-commands.
Differences from alternatives
haskeline
- This uses FFI to a minimal C library vs pure Haskell
- This uses standard MTL/Unlift typeclasses vs custom ones.
- This does not require the use of a specific monad transformer.
readline
- This offers a
MonadIO/MonadUnliftIO
interface vs rawIO
. - This vendors and statically links its underlying library to simplify the build process.
- This offers a
License and attribution
This library includes the source code and license for linenoise
in cbits
.
It is a fork of an older library with all licensing and
attribution preserved.
Development workflow
This project uses stack
to build.
The Makefile
has a bunch of relevant phony targets for a development workflow including
build
- Build the library and demodownload
- Update vendoredlinenoise
demo
- Run the demo appdeps
- Install dev toolslint
- Lint withhlint
format
- Format withstylish-haskell
docs
- Generate docs
In addition, there are targets starting with ci
that are invoked in various CI phases.
TODO
- Support unicode (may involve vendoring a
linenoise
fork) - Verify that the FFI modifications for
ByteString
are memory-safe
*Note that all licence references and agreements mentioned in the linenoise README section above
are relevant to that project's source code only.