Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/f3fora/lua-nuspell
lua-nuspell is a set of Lua 5.x bindings for Nuspell spellchecking C++ library.
https://github.com/f3fora/lua-nuspell
Last synced: 2 months ago
JSON representation
lua-nuspell is a set of Lua 5.x bindings for Nuspell spellchecking C++ library.
- Host: GitHub
- URL: https://github.com/f3fora/lua-nuspell
- Owner: f3fora
- License: lgpl-3.0
- Created: 2021-08-28T14:48:34.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-06-25T12:22:01.000Z (6 months ago)
- Last Synced: 2024-08-07T18:38:08.309Z (5 months ago)
- Language: Lua
- Size: 28.3 KB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lua-nuspell
`lua-nuspell` is a set of Lua 5.x bindings for [Nuspell](https://nuspell.github.io/) spellchecking C++ library.
## About Nuspell
> Nuspell is a fast and safe spelling checker software program. It is designed for languages with rich morphology and complex word compounding.Nuspell is written in modern C++ and it supports Hunspell dictionaries.
>
> Main features of Nuspell spelling checker:
>
> - Provides software library and command-line tool.
> - Suggests high-quality spelling corrections.
> - Backward compatibility with Hunspell dictionary file format.
> - Up to 3.5 times faster than Hunspell.
> - Full Unicode support backed by ICU.
> - Twofold affix stripping (for agglutinative languages, like Azeri, Basque, Estonian, Finnish, Hungarian, Turkish, etc.).
> - Supports complex compounds (for example, Hungarian, German and Dutch).
> - Supports advanced features, for example: special casing rules (Turkish dotted i or German sharp s), conditional affixes, circumfixes, fogemorphemes, forbidden words, pseudoroots and homonyms.
> - Free and open source software. Licensed under GNU LGPL v3 or later.## Status
[![Test](https://github.com/f3fora/lua-nuspell/actions/workflows/test.yaml/badge.svg)](https://github.com/f3fora/lua-nuspell/actions)
Tested only on Linux. Feedback wanted!
## Requirements
- nuspell
## Installation
### from [LuaRocks](https://luarocks.org/modules/f3fora/lua-nuspell)
```
luarocks install lua-nuspell
```### from RockSpec
Clone and build.
```
luarocks make --local
```### from Source
Clone and compile for example for Lua 5.1.
```
g++ -fPIC -shared -lnuspell -std=c++17 -I/usr/include/lua5.1/ -o nuspell.so src/nuspell.cxx
```## Documentation
Documentation is available with
```
luarocks doc lua-nuspell
```Otherwise, it can be generated with [LDoc](https://github.com/lunarmodules/LDoc) by running
```
ldoc .
```And the result can be viewed by opening `doc/index.html` in a web browser.
### Minimal Example
```lua
local nuspell = require('nuspell')
local unpack = table.unpack or unpack
local word = 'Hello'
local lang = 'en_US'local dirs = nuspell.get_default_dir_paths()
local aff = nuspell.search_dirs_for_one_dict(dirs, lang)
local dict = nuspell.Dictionary.load_aff_dic(aff)print(dict:spell(word))
print(unpack(dict:suggest(word)))
```## License
`lua-nuspell` is licensed under the LGPL version 3 or later, see [LICENSE](LICENSE) for more
information.