First of all, I'd like to express my gratitude and appreciation for Nim — I've 
been following the project since Nim v0.10 (more or less), although I've never 
managed to find enough time to dedicate myself to study the language and 
experiment with it as I should have (I even bought a very early MEAP of the 
excellent "Nim in Action" book).

Finally, I'm now able to dedicate myself to learning Nim on an almost daily 
basis, and I'm starting to port to Nim some prototype projects which I had 
created with some quick-to-use languages, but now deserve to be reimplemented 
in a solid language. I'm really impressed by the philosophy behind Nim, and the 
clean syntax it offers. I hope I'll be able to contribute to the project in the 
course of time.

Right now, I'm porting a project which relies on RegExs (the original code uses 
PCRE). After having looked at the impure **re** library and the **pcre** 
wrapper, as well as the **nre** library, and having compared them to the 
**strscans** library, I'm tempted to use the latter for my project, for it 
seems to cover all the pattern needs of my code (not complex patterns, but 
quite a lot of them). I like **strscans** because it's extensible, and simpler 
to use than any of the current PCRE solutions, and most of all is in pure Nim 
and doesn't require third party dependencies.

I have a few questions though...

Performance wise, how does **strscans** compare to PCRE based libraries? My 
project has to perform a huge quantity of pattern matching, so performance 
might be a concern if the difference is huge. Overall, I'd like to prioritize 
code usability over performance right now, but being a CLI tool that is used to 
process many input text files, I can't afford a significant degrade in 
performance, but I it's OK if the difference is marginal.

Also, I wanted to ask about the **nre** library status. I've looked at its 
documentation and the GitHub issues linked therein, and learned that it's now 
part of the Nim Standard Library, but couldn't really work out its current 
status. What I don't understand is: why it's not linked in the documentation 
page for the StdLib? and why it resides in a subfolder of its own 
(`lib\impure\nre\private\`)?

Thanks

Reply via email to