rlwrap does the same thing (and very well too, I might add).
actually rlwrap and readline are not doing at all the same thing, but are instead solving the same problem. In fact rlwrap uses readline itself in order to wrap another executable missing line editing support.
Linenoise instead is intended to be an alternative to libreadline itself in order to provide built-in line editing capabilities.