A string type for minimizing data-transfer costs in Julia
The package is registered in the General registry and so can be installed with Pkg.add.
julia> using Pkg; Pkg.add("WeakRefStrings")The package is tested against Julia 1.6 and nightly on Linux, OS X, and Windows.
Contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems or would just like to ask a question.
The inline string types (String1, String3, String7, String15,
String31, String63, String127, String255) now live in
InlineStrings.jl and are
re-exported from this package for backwards compatibility.
Usage of WeakRefStrings is discouraged for general users. Currently, a
WeakRefString purposely does not implement many Base Julia String interface
methods due to many recent changes to Julia's builtin String interface, as well
as the complexity to do so correctly. As such, WeakRefStrings are used
primarily in the data ecosystem as an IO optimization and nothing more. Upon
indexing a WeakRefStringArray, a proper Julia String type is materialized
for safe, correct string processing. In the future, it may be possible to
implement safe operations on WeakRefString itself, but for now, they must be
converted to a String for any real work.
Additional documentation is available at the REPL for ?WeakRefStringArray and
?WeakRefString.