recheck v4.3.0
Here, we announce the new release of recheck v4.3.0.
It is a small release to go forward to a milestone. However, it has some important changes and improvements. We will describe them.
You could see the complete CHANGELOG for detailed informations.
New Features
worker
backend for NPM package
The recheck
NPM package now contains worker
backend.
It is pure JavaScript (Scala.js build) backend with worker_threads
(for Node.js) or Web Workers API (for browsers).
In other words, you can use recheck
in asynchronous on JavaScript without any external commands depending on the settings.
This should allow recheck
to be used in many more environments.
You can use worker
backend explicitly by the following way:
$ RECHECK_BACKEND=worker node
> await require('recheck').check('^(a|a)*$', '')
Especially, it is very comfortable to use in a browser. The code to run on workers is bundled inline, so no additional configuration is required to use.
However, Scala.js build is bundled twice for usual environment and workers. As a result, a file size after building may be larger than before. In order to avoid this, we consider it is effective to use conditional exports and provide a build of the ES module version that allows tree shaking. This will be addressed in the next version.
Changes
Rename hybrid
to auto
Initially, we thought the name hybrid
would be appropriate, since it uses both fuzzing and automata theory based algorithms.
However, this name may have given a wrong impression, because the implementation actually automatically decides which algorithm is better.
To deal with this problem, we renamed hybrid
to auto
.
Rename labo
to labs
MakeNowJust-Labo
is renamed to makenowjust-labs
now, and codes.quine.labo
namespace is also renamed to codes.quine.labs
.
Please update dependencies and link names.
-libraryDependencies += "codes.quine.labo" %% "recheck-core" % "4.2.2"
+libraryDependencies += "codes.quine.labs" %% "recheck-core" % "4.3.0"
Miscellaneous
Website renewal
The website has been completely renewed using Docusaurus. Thanks Docusaurus team for providing such a good documentation tool.
The new website has detailed usages as a library and ESLint plugin, and a playground where all options can now be specified. It will be much more convenient than before.
P.S.
We continue to develop the project to release recheck
v5.
Some of the features planned for v5 and more futures are as follows:
- A new parser to parse other dialect than JavaScript
- To support to analysis other language's regex
- To suggest a new regex to prevent ReDoS (auto repairing)
Thank you for your interesting!