spellkit 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +26 -3
- data/ext/spellkit/Cargo.toml +1 -1
- data/lib/spellkit/version.rb +1 -1
- data/lib/spellkit.rb +9 -2
- metadata +7 -28
- data/ext/spellkit/Cargo.lock +0 -345
- data/ext/spellkit/target/debug/build/clang-sys-051521a65ca8f402/out/common.rs +0 -355
- data/ext/spellkit/target/debug/build/clang-sys-051521a65ca8f402/out/dynamic.rs +0 -276
- data/ext/spellkit/target/debug/build/clang-sys-051521a65ca8f402/out/macros.rs +0 -49
- data/ext/spellkit/target/debug/build/rb-sys-4cf7db3819c4a6ed/out/bindings-0.9.117-mri-arm64-darwin24-3.3.0.rs +0 -8902
- data/ext/spellkit/target/debug/build/rb-sys-ead65721880de65e/out/bindings-0.9.117-mri-arm64-darwin24-3.3.0.rs +0 -8902
- data/ext/spellkit/target/debug/build/serde-b1b39c86cf577219/out/private.rs +0 -6
- data/ext/spellkit/target/debug/build/serde_core-7a7752261f0e4007/out/private.rs +0 -5
- data/ext/spellkit/target/debug/incremental/spellkit-07yduakb6espe/s-hbic3f250f-1cel1lt.lock +0 -0
- data/ext/spellkit/target/debug/incremental/spellkit-10n1yon0n2c8v/s-hbha7isu2i-02ly2uq.lock +0 -0
- data/ext/spellkit/target/debug/incremental/spellkit-1d3zzknqc98bj/s-hbic3f250l-011iykk.lock +0 -0
- data/ext/spellkit/target/debug/incremental/spellkit-1pt6om2w642b5/s-hbihepi6zy-1r3p88g.lock +0 -0
- data/ext/spellkit/target/debug/incremental/spellkit-2jusczkp089xp/s-hbhcyx6yob-0pqrnyt.lock +0 -0
- data/ext/spellkit/target/debug/incremental/spellkit-39nm03wp54lxw/s-hbhcyx6ynq-08lhwc0.lock +0 -0
- data/ext/spellkit/target/release/build/clang-sys-523e86284ef4dd76/out/common.rs +0 -355
- data/ext/spellkit/target/release/build/clang-sys-523e86284ef4dd76/out/dynamic.rs +0 -276
- data/ext/spellkit/target/release/build/clang-sys-523e86284ef4dd76/out/macros.rs +0 -49
- data/ext/spellkit/target/release/build/rb-sys-7d03ffe964952311/out/bindings-0.9.117-mri-arm64-darwin24-3.3.0.rs +0 -8902
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: adf2357fd18c80d025496b5b2b1f5feee5dbf1a1f1daf5cae12d5e6029b56675
|
|
4
|
+
data.tar.gz: f0a4d4ca9f73de174e05adf1a979c82d7d03f669d9aca9dec20f416241316e45
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 132842b6389fda2ed263f5b127733e10bf21835c5c5d817aa108a9286f663475cea7f0201c51960e61ee989208efb07aed9dba35a98dfe752b95419c1a4c6511
|
|
7
|
+
data.tar.gz: dfa5789feab1ba0b88df7a34a8410f628a251a403ea859c8343fc1a2c7b478d849158f1292e879a2f7911f4d044142900ebcfcec005e336903c55217f05f7229
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<img src="/docs/assets/spellkit-wide.png" alt="spellkit" height="160px">
|
|
2
2
|
|
|
3
|
-
Fast, safe typo correction for search-term extraction
|
|
3
|
+
Fast, safe typo correction for search-term extraction. A Ruby gem with a native Rust implementation of the SymSpell algorithm.
|
|
4
4
|
|
|
5
5
|
SpellKit provides:
|
|
6
6
|
- **Fast correction** using SymSpell with configurable edit distance (1 or 2)
|
|
@@ -9,6 +9,8 @@ SpellKit provides:
|
|
|
9
9
|
- **Sub-millisecond latency** - p95 < 2µs on small dictionaries
|
|
10
10
|
- **Thread-safe** - built with Rust's Arc<RwLock> for safe concurrent access
|
|
11
11
|
|
|
12
|
+
**Why a custom implementation?** Existing Rust SymSpell crates require lowercase dictionary entries, but SpellKit preserves canonical forms (NASA stays NASA, iPhone stays iPhone). We also needed domain-specific guards, hot-reload, and Aspell-style skip patterns - features not available in existing implementations.
|
|
13
|
+
|
|
12
14
|
## Why SpellKit?
|
|
13
15
|
|
|
14
16
|
### No Runtime Dependencies
|
|
@@ -542,7 +544,7 @@ end
|
|
|
542
544
|
|
|
543
545
|
## Performance
|
|
544
546
|
|
|
545
|
-
### SpellKit Standalone (
|
|
547
|
+
### SpellKit Standalone (M4 Max MacBook Pro, Ruby 3.3.0, 80k dictionary)
|
|
546
548
|
|
|
547
549
|
**Single Word Suggestions:**
|
|
548
550
|
- 3,345 i/s (298.96 μs/i) with max: 1 suggestion
|
|
@@ -572,6 +574,27 @@ end
|
|
|
572
574
|
3. **High Throughput**: Over 16k operations per second with 80k word dictionary
|
|
573
575
|
4. **Scales Well**: Minimal performance difference between 1 vs 10 suggestions
|
|
574
576
|
|
|
577
|
+
### Comparison with Aspell
|
|
578
|
+
|
|
579
|
+
SpellKit vs Aspell (M4 Max MacBook Pro, Ruby 3.3.0, 80k dictionary):
|
|
580
|
+
|
|
581
|
+
**Suggestion Performance (13 misspelled words):**
|
|
582
|
+
- SpellKit: 3,162 i/s (316μs per batch)
|
|
583
|
+
- Aspell: 433 i/s (2.31ms per batch)
|
|
584
|
+
- **SpellKit is 7.3x faster**
|
|
585
|
+
|
|
586
|
+
**Spell Checking (correct? on 26 words):**
|
|
587
|
+
- SpellKit: 263,279 i/s (3.8μs per batch)
|
|
588
|
+
- Aspell: 72,099 i/s (13.9μs per batch)
|
|
589
|
+
- **SpellKit is 3.65x faster**
|
|
590
|
+
|
|
591
|
+
**Latency Distribution (10,000 single-word suggestions):**
|
|
592
|
+
- SpellKit: p50=63μs, p95=69μs, p99=98μs
|
|
593
|
+
- Aspell: p50=105μs, p95=121μs, p99=182μs
|
|
594
|
+
- **SpellKit is 1.7x faster at p50, 1.75x faster at p95**
|
|
595
|
+
|
|
596
|
+
Both libraries provide high-quality spell checking, but SpellKit's SymSpell algorithm (O(1) lookup) offers significant performance advantages over Aspell's statistical approach, especially for high-throughput applications.
|
|
597
|
+
|
|
575
598
|
## Benchmarks
|
|
576
599
|
|
|
577
600
|
SpellKit includes comprehensive benchmarks to measure performance and compare with other spell checkers.
|
|
@@ -671,4 +694,4 @@ Bug reports and pull requests are welcome at https://github.com/scientist-labs/s
|
|
|
671
694
|
|
|
672
695
|
## License
|
|
673
696
|
|
|
674
|
-
MIT License - see [LICENSE](LICENSE) file for details.
|
|
697
|
+
MIT License - see [LICENSE](LICENSE.txt) file for details.
|
data/ext/spellkit/Cargo.toml
CHANGED
data/lib/spellkit/version.rb
CHANGED
data/lib/spellkit.rb
CHANGED
|
@@ -4,10 +4,17 @@ require "net/http"
|
|
|
4
4
|
require "openssl"
|
|
5
5
|
require "fileutils"
|
|
6
6
|
|
|
7
|
+
# Load the compiled Rust extension. Precompiled (platform) gems install it into a
|
|
8
|
+
# Ruby-ABI-versioned subdir (lib/spellkit/<major.minor>/spellkit.{so,bundle}) so a
|
|
9
|
+
# single fat gem can carry a binary per Ruby version; source/dev builds place it flat
|
|
10
|
+
# at lib/spellkit/spellkit.{so,bundle}. Try the versioned path first, fall back to the
|
|
11
|
+
# flat one. Resolution goes through $LOAD_PATH (`require`, never `require_relative`)
|
|
12
|
+
# because RubyGems installs native extensions outside the gem's lib/ dir.
|
|
7
13
|
begin
|
|
8
|
-
|
|
14
|
+
RUBY_VERSION =~ /(\d+\.\d+)/
|
|
15
|
+
require "spellkit/#{Regexp.last_match(1)}/spellkit"
|
|
9
16
|
rescue LoadError
|
|
10
|
-
require "spellkit
|
|
17
|
+
require "spellkit/spellkit"
|
|
11
18
|
end
|
|
12
19
|
|
|
13
20
|
module SpellKit
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spellkit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris Petersen
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: rb_sys
|
|
@@ -150,8 +149,8 @@ dependencies:
|
|
|
150
149
|
- - ">="
|
|
151
150
|
- !ruby/object:Gem::Version
|
|
152
151
|
version: '0'
|
|
153
|
-
description: A Ruby gem
|
|
154
|
-
with domain-specific term protection
|
|
152
|
+
description: A Ruby gem with a native Rust implementation of the SymSpell algorithm
|
|
153
|
+
for fast typo correction with domain-specific term protection
|
|
155
154
|
email:
|
|
156
155
|
- chris@petersen.io
|
|
157
156
|
executables: []
|
|
@@ -160,29 +159,11 @@ extensions:
|
|
|
160
159
|
extra_rdoc_files: []
|
|
161
160
|
files:
|
|
162
161
|
- README.md
|
|
163
|
-
- ext/spellkit/Cargo.lock
|
|
164
162
|
- ext/spellkit/Cargo.toml
|
|
165
163
|
- ext/spellkit/extconf.rb
|
|
166
164
|
- ext/spellkit/src/guards.rs
|
|
167
165
|
- ext/spellkit/src/lib.rs
|
|
168
166
|
- ext/spellkit/src/symspell.rs
|
|
169
|
-
- ext/spellkit/target/debug/build/clang-sys-051521a65ca8f402/out/common.rs
|
|
170
|
-
- ext/spellkit/target/debug/build/clang-sys-051521a65ca8f402/out/dynamic.rs
|
|
171
|
-
- ext/spellkit/target/debug/build/clang-sys-051521a65ca8f402/out/macros.rs
|
|
172
|
-
- ext/spellkit/target/debug/build/rb-sys-4cf7db3819c4a6ed/out/bindings-0.9.117-mri-arm64-darwin24-3.3.0.rs
|
|
173
|
-
- ext/spellkit/target/debug/build/rb-sys-ead65721880de65e/out/bindings-0.9.117-mri-arm64-darwin24-3.3.0.rs
|
|
174
|
-
- ext/spellkit/target/debug/build/serde-b1b39c86cf577219/out/private.rs
|
|
175
|
-
- ext/spellkit/target/debug/build/serde_core-7a7752261f0e4007/out/private.rs
|
|
176
|
-
- ext/spellkit/target/debug/incremental/spellkit-07yduakb6espe/s-hbic3f250f-1cel1lt.lock
|
|
177
|
-
- ext/spellkit/target/debug/incremental/spellkit-10n1yon0n2c8v/s-hbha7isu2i-02ly2uq.lock
|
|
178
|
-
- ext/spellkit/target/debug/incremental/spellkit-1d3zzknqc98bj/s-hbic3f250l-011iykk.lock
|
|
179
|
-
- ext/spellkit/target/debug/incremental/spellkit-1pt6om2w642b5/s-hbihepi6zy-1r3p88g.lock
|
|
180
|
-
- ext/spellkit/target/debug/incremental/spellkit-2jusczkp089xp/s-hbhcyx6yob-0pqrnyt.lock
|
|
181
|
-
- ext/spellkit/target/debug/incremental/spellkit-39nm03wp54lxw/s-hbhcyx6ynq-08lhwc0.lock
|
|
182
|
-
- ext/spellkit/target/release/build/clang-sys-523e86284ef4dd76/out/common.rs
|
|
183
|
-
- ext/spellkit/target/release/build/clang-sys-523e86284ef4dd76/out/dynamic.rs
|
|
184
|
-
- ext/spellkit/target/release/build/clang-sys-523e86284ef4dd76/out/macros.rs
|
|
185
|
-
- ext/spellkit/target/release/build/rb-sys-7d03ffe964952311/out/bindings-0.9.117-mri-arm64-darwin24-3.3.0.rs
|
|
186
167
|
- lib/spellkit.rb
|
|
187
168
|
- lib/spellkit/version.rb
|
|
188
169
|
homepage: https://github.com/scientist-labs/spellkit
|
|
@@ -191,8 +172,6 @@ licenses:
|
|
|
191
172
|
metadata:
|
|
192
173
|
homepage_uri: https://github.com/scientist-labs/spellkit
|
|
193
174
|
source_code_uri: https://github.com/scientist-labs/spellkit
|
|
194
|
-
changelog_uri: https://github.com/scientist-labs/spellkit/blob/main/CHANGELOG.md
|
|
195
|
-
post_install_message:
|
|
196
175
|
rdoc_options: []
|
|
197
176
|
require_paths:
|
|
198
177
|
- lib
|
|
@@ -206,9 +185,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
206
185
|
- - ">="
|
|
207
186
|
- !ruby/object:Gem::Version
|
|
208
187
|
version: '0'
|
|
209
|
-
requirements:
|
|
210
|
-
|
|
211
|
-
|
|
188
|
+
requirements:
|
|
189
|
+
- Rust >= 1.85
|
|
190
|
+
rubygems_version: 3.6.9
|
|
212
191
|
specification_version: 4
|
|
213
192
|
summary: Fast, safe typo correction for search-term extraction
|
|
214
193
|
test_files: []
|
data/ext/spellkit/Cargo.lock
DELETED
|
@@ -1,345 +0,0 @@
|
|
|
1
|
-
# This file is automatically @generated by Cargo.
|
|
2
|
-
# It is not intended for manual editing.
|
|
3
|
-
version = 4
|
|
4
|
-
|
|
5
|
-
[[package]]
|
|
6
|
-
name = "aho-corasick"
|
|
7
|
-
version = "1.1.3"
|
|
8
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
-
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
|
|
10
|
-
dependencies = [
|
|
11
|
-
"memchr",
|
|
12
|
-
]
|
|
13
|
-
|
|
14
|
-
[[package]]
|
|
15
|
-
name = "allocator-api2"
|
|
16
|
-
version = "0.2.21"
|
|
17
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
18
|
-
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
|
|
19
|
-
|
|
20
|
-
[[package]]
|
|
21
|
-
name = "bindgen"
|
|
22
|
-
version = "0.69.5"
|
|
23
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
24
|
-
checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088"
|
|
25
|
-
dependencies = [
|
|
26
|
-
"bitflags",
|
|
27
|
-
"cexpr",
|
|
28
|
-
"clang-sys",
|
|
29
|
-
"itertools",
|
|
30
|
-
"lazy_static",
|
|
31
|
-
"lazycell",
|
|
32
|
-
"proc-macro2",
|
|
33
|
-
"quote",
|
|
34
|
-
"regex",
|
|
35
|
-
"rustc-hash",
|
|
36
|
-
"shlex",
|
|
37
|
-
"syn",
|
|
38
|
-
]
|
|
39
|
-
|
|
40
|
-
[[package]]
|
|
41
|
-
name = "bitflags"
|
|
42
|
-
version = "2.9.4"
|
|
43
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
44
|
-
checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
|
|
45
|
-
|
|
46
|
-
[[package]]
|
|
47
|
-
name = "cexpr"
|
|
48
|
-
version = "0.6.0"
|
|
49
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
50
|
-
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
|
|
51
|
-
dependencies = [
|
|
52
|
-
"nom",
|
|
53
|
-
]
|
|
54
|
-
|
|
55
|
-
[[package]]
|
|
56
|
-
name = "cfg-if"
|
|
57
|
-
version = "1.0.3"
|
|
58
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
59
|
-
checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
|
|
60
|
-
|
|
61
|
-
[[package]]
|
|
62
|
-
name = "clang-sys"
|
|
63
|
-
version = "1.8.1"
|
|
64
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
65
|
-
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
|
|
66
|
-
dependencies = [
|
|
67
|
-
"glob",
|
|
68
|
-
"libc",
|
|
69
|
-
"libloading",
|
|
70
|
-
]
|
|
71
|
-
|
|
72
|
-
[[package]]
|
|
73
|
-
name = "either"
|
|
74
|
-
version = "1.15.0"
|
|
75
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
76
|
-
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
|
77
|
-
|
|
78
|
-
[[package]]
|
|
79
|
-
name = "equivalent"
|
|
80
|
-
version = "1.0.2"
|
|
81
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
82
|
-
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
83
|
-
|
|
84
|
-
[[package]]
|
|
85
|
-
name = "foldhash"
|
|
86
|
-
version = "0.1.5"
|
|
87
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
88
|
-
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
|
|
89
|
-
|
|
90
|
-
[[package]]
|
|
91
|
-
name = "glob"
|
|
92
|
-
version = "0.3.3"
|
|
93
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
94
|
-
checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
|
|
95
|
-
|
|
96
|
-
[[package]]
|
|
97
|
-
name = "hashbrown"
|
|
98
|
-
version = "0.15.5"
|
|
99
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
100
|
-
checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
|
|
101
|
-
dependencies = [
|
|
102
|
-
"allocator-api2",
|
|
103
|
-
"equivalent",
|
|
104
|
-
"foldhash",
|
|
105
|
-
]
|
|
106
|
-
|
|
107
|
-
[[package]]
|
|
108
|
-
name = "itertools"
|
|
109
|
-
version = "0.12.1"
|
|
110
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
111
|
-
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
|
|
112
|
-
dependencies = [
|
|
113
|
-
"either",
|
|
114
|
-
]
|
|
115
|
-
|
|
116
|
-
[[package]]
|
|
117
|
-
name = "lazy_static"
|
|
118
|
-
version = "1.5.0"
|
|
119
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
120
|
-
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
|
|
121
|
-
|
|
122
|
-
[[package]]
|
|
123
|
-
name = "lazycell"
|
|
124
|
-
version = "1.3.0"
|
|
125
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
126
|
-
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
|
|
127
|
-
|
|
128
|
-
[[package]]
|
|
129
|
-
name = "libc"
|
|
130
|
-
version = "0.2.176"
|
|
131
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
132
|
-
checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174"
|
|
133
|
-
|
|
134
|
-
[[package]]
|
|
135
|
-
name = "libloading"
|
|
136
|
-
version = "0.8.9"
|
|
137
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
138
|
-
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
|
|
139
|
-
dependencies = [
|
|
140
|
-
"cfg-if",
|
|
141
|
-
"windows-link",
|
|
142
|
-
]
|
|
143
|
-
|
|
144
|
-
[[package]]
|
|
145
|
-
name = "magnus"
|
|
146
|
-
version = "0.7.1"
|
|
147
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
148
|
-
checksum = "3d87ae53030f3a22e83879e666cb94e58a7bdf31706878a0ba48752994146dab"
|
|
149
|
-
dependencies = [
|
|
150
|
-
"magnus-macros",
|
|
151
|
-
"rb-sys",
|
|
152
|
-
"rb-sys-env",
|
|
153
|
-
"seq-macro",
|
|
154
|
-
]
|
|
155
|
-
|
|
156
|
-
[[package]]
|
|
157
|
-
name = "magnus-macros"
|
|
158
|
-
version = "0.6.0"
|
|
159
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
160
|
-
checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3"
|
|
161
|
-
dependencies = [
|
|
162
|
-
"proc-macro2",
|
|
163
|
-
"quote",
|
|
164
|
-
"syn",
|
|
165
|
-
]
|
|
166
|
-
|
|
167
|
-
[[package]]
|
|
168
|
-
name = "memchr"
|
|
169
|
-
version = "2.7.6"
|
|
170
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
171
|
-
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
|
|
172
|
-
|
|
173
|
-
[[package]]
|
|
174
|
-
name = "minimal-lexical"
|
|
175
|
-
version = "0.2.1"
|
|
176
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
177
|
-
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
|
178
|
-
|
|
179
|
-
[[package]]
|
|
180
|
-
name = "nom"
|
|
181
|
-
version = "7.1.3"
|
|
182
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
183
|
-
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
|
|
184
|
-
dependencies = [
|
|
185
|
-
"memchr",
|
|
186
|
-
"minimal-lexical",
|
|
187
|
-
]
|
|
188
|
-
|
|
189
|
-
[[package]]
|
|
190
|
-
name = "proc-macro2"
|
|
191
|
-
version = "1.0.101"
|
|
192
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
193
|
-
checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
|
|
194
|
-
dependencies = [
|
|
195
|
-
"unicode-ident",
|
|
196
|
-
]
|
|
197
|
-
|
|
198
|
-
[[package]]
|
|
199
|
-
name = "quote"
|
|
200
|
-
version = "1.0.40"
|
|
201
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
202
|
-
checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
|
|
203
|
-
dependencies = [
|
|
204
|
-
"proc-macro2",
|
|
205
|
-
]
|
|
206
|
-
|
|
207
|
-
[[package]]
|
|
208
|
-
name = "rb-sys"
|
|
209
|
-
version = "0.9.117"
|
|
210
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
211
|
-
checksum = "f900d1ce4629a2ebffaf5de74bd8f9c1188d4c5ed406df02f97e22f77a006f44"
|
|
212
|
-
dependencies = [
|
|
213
|
-
"rb-sys-build",
|
|
214
|
-
]
|
|
215
|
-
|
|
216
|
-
[[package]]
|
|
217
|
-
name = "rb-sys-build"
|
|
218
|
-
version = "0.9.117"
|
|
219
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
220
|
-
checksum = "ef1e9c857028f631056bcd6d88cec390c751e343ce2223ddb26d23eb4a151d59"
|
|
221
|
-
dependencies = [
|
|
222
|
-
"bindgen",
|
|
223
|
-
"lazy_static",
|
|
224
|
-
"proc-macro2",
|
|
225
|
-
"quote",
|
|
226
|
-
"regex",
|
|
227
|
-
"shell-words",
|
|
228
|
-
"syn",
|
|
229
|
-
]
|
|
230
|
-
|
|
231
|
-
[[package]]
|
|
232
|
-
name = "rb-sys-env"
|
|
233
|
-
version = "0.1.2"
|
|
234
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
235
|
-
checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
|
|
236
|
-
|
|
237
|
-
[[package]]
|
|
238
|
-
name = "regex"
|
|
239
|
-
version = "1.11.3"
|
|
240
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
241
|
-
checksum = "8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c"
|
|
242
|
-
dependencies = [
|
|
243
|
-
"aho-corasick",
|
|
244
|
-
"memchr",
|
|
245
|
-
"regex-automata",
|
|
246
|
-
"regex-syntax",
|
|
247
|
-
]
|
|
248
|
-
|
|
249
|
-
[[package]]
|
|
250
|
-
name = "regex-automata"
|
|
251
|
-
version = "0.4.11"
|
|
252
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
253
|
-
checksum = "833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad"
|
|
254
|
-
dependencies = [
|
|
255
|
-
"aho-corasick",
|
|
256
|
-
"memchr",
|
|
257
|
-
"regex-syntax",
|
|
258
|
-
]
|
|
259
|
-
|
|
260
|
-
[[package]]
|
|
261
|
-
name = "regex-syntax"
|
|
262
|
-
version = "0.8.6"
|
|
263
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
264
|
-
checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
|
|
265
|
-
|
|
266
|
-
[[package]]
|
|
267
|
-
name = "rustc-hash"
|
|
268
|
-
version = "1.1.0"
|
|
269
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
270
|
-
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
|
271
|
-
|
|
272
|
-
[[package]]
|
|
273
|
-
name = "seq-macro"
|
|
274
|
-
version = "0.3.6"
|
|
275
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
276
|
-
checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
|
|
277
|
-
|
|
278
|
-
[[package]]
|
|
279
|
-
name = "shell-words"
|
|
280
|
-
version = "1.1.0"
|
|
281
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
282
|
-
checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
|
|
283
|
-
|
|
284
|
-
[[package]]
|
|
285
|
-
name = "shlex"
|
|
286
|
-
version = "1.3.0"
|
|
287
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
288
|
-
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
289
|
-
|
|
290
|
-
[[package]]
|
|
291
|
-
name = "spellkit"
|
|
292
|
-
version = "0.1.0"
|
|
293
|
-
dependencies = [
|
|
294
|
-
"hashbrown",
|
|
295
|
-
"magnus",
|
|
296
|
-
"regex",
|
|
297
|
-
"unicode-normalization",
|
|
298
|
-
]
|
|
299
|
-
|
|
300
|
-
[[package]]
|
|
301
|
-
name = "syn"
|
|
302
|
-
version = "2.0.106"
|
|
303
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
304
|
-
checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6"
|
|
305
|
-
dependencies = [
|
|
306
|
-
"proc-macro2",
|
|
307
|
-
"quote",
|
|
308
|
-
"unicode-ident",
|
|
309
|
-
]
|
|
310
|
-
|
|
311
|
-
[[package]]
|
|
312
|
-
name = "tinyvec"
|
|
313
|
-
version = "1.10.0"
|
|
314
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
315
|
-
checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
|
|
316
|
-
dependencies = [
|
|
317
|
-
"tinyvec_macros",
|
|
318
|
-
]
|
|
319
|
-
|
|
320
|
-
[[package]]
|
|
321
|
-
name = "tinyvec_macros"
|
|
322
|
-
version = "0.1.1"
|
|
323
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
324
|
-
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
|
325
|
-
|
|
326
|
-
[[package]]
|
|
327
|
-
name = "unicode-ident"
|
|
328
|
-
version = "1.0.19"
|
|
329
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
330
|
-
checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
|
|
331
|
-
|
|
332
|
-
[[package]]
|
|
333
|
-
name = "unicode-normalization"
|
|
334
|
-
version = "0.1.24"
|
|
335
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
336
|
-
checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"
|
|
337
|
-
dependencies = [
|
|
338
|
-
"tinyvec",
|
|
339
|
-
]
|
|
340
|
-
|
|
341
|
-
[[package]]
|
|
342
|
-
name = "windows-link"
|
|
343
|
-
version = "0.2.0"
|
|
344
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
345
|
-
checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65"
|