nlprule
traits
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nlprule
-
Vale.sh – A Linter for Prose
Another interesting projects in the space:
- nlprule: https://github.com/bminixhofer/nlprule
- prosemd: https://github.com/kitten/prosemd-lsp
- cargo spellcheck: https://github.com/drahnr/cargo-spellcheck
-
Language Tool – open-source Grammarly Alternative
check out nlprule, it's LanguageTool alternative written in Rust
https://github.com/bminixhofer/nlprule
-
LanguageTool-Rust is releasing 1.0.0!
nlprule
-
Typo correction using NLP
Regarding grammatical error correction: LaserTagger is really cool and the first paper I'd recommend you to read if you're interested in a recent machine learning approach. The code is also Open Source. There's also rule-based approaches which are (again) faster but less sophisticated like nlprule.
-
What’s everyone working on this week (8/2021)?
I'm working on https://github.com/bminixhofer/nlprule, a library for NLP (sentence segmentation, part-of-speech tagging, chunking, ..) and Grammatical Error Correction.
traits
-
RustCrypto Release Announcements: `aead` v0.4, `cipher` v0.3, `crypto` v0.2, `elliptic-curve` v0.9, `ecdsa` v0.11
For ECIES that'd probably be something like HPKE. HPKE isn't specific to ECC though, and is defined in terms of a KEM, so the first step there would probably be defining KEM traits which would allow you to plug in ECDH or potentially a post-quantum algorithm or RSA.
-
The last and next year of image-rs
No need for eternal stability. It would be indeed nice to get the API right the first time, but in practice it's borderline impossible to do. It's fine for trait crates to introduce breaking changes from time to time, especially for pre-1.0 ones. For prior art you can take a look at rand_core or RustCrypto trait crates.
-
What’s everyone working on this week (8/2021)?
I finally dusted off my barely-working git hosting solution and added a basic user account system. It took me some time to understand how exactly I was supposed to use password-hash in combination with my hashing function of choice, as well as with the DB. Using sqlx together with Rocket turned out to be somewhat easy once I figured out that I should disregard the built-in database support, since it's seemingly incompatible with sqlx.
-
Go vs Rust for crypto implementations
The main difference between those two languages, I think you should look at, is power of type system. A good type system allows to encode various invariants checked at compile time, help with interoperability, and even improve performance a bit (e.g. by eliminating runtime-checks). In this regard Rust is far, far ahead of Go in my opinion and continues to improve in this regard (e.g. soon we will have const generics). For example, in RustCrypto we have trait crates which contain "interfaces" of several algorithm types. Almost all algorithm implementations in this org (and some third-party implementations) are implemented in terms of those traits, which means you can easily swap algorithms with each other and combine them like Lego blocks, without diving deep into source code. This property is especially important if you want to support less common algorithms (e.g. regional standards or newly developed algorithms).
What are some alternatives?
NLP-progress - Repository to track the progress in Natural Language Processing (NLP), including the datasets and the current state-of-the-art for the most common NLP tasks.
rav1e - The fastest and safest AV1 encoder.
wtpsplit - Code for Where's the Point? Self-Supervised Multilingual Punctuation-Agnostic Sentence Segmentation
tink-rust - Rust port of Tink cryptography library
SymSpell - SymSpell: 1 million times faster spelling correction & fuzzy search through Symmetric Delete spelling correction algorithm
mos - An assembler, code formatter, language server and debug adapter for the MOS 6502 CPU.
CalcuLaTeX - A pretty printing calculator language with support for units. Makes calculations easier and more presentable with real time LaTeX output, along with support for units, variables, and mathematical functions.
google-hashcode-template - Google Hashcode Rust Template
instant-segment - Fast English word segmentation in Rust
meta - Meta-crates of the RustCrypto project
tinyrenderer - A brief computer graphics / rendering course
gbench