-
Notifications
You must be signed in to change notification settings - Fork 602
/
categories.toml
625 lines (533 loc) · 14.8 KB
/
categories.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
# This is where the categories available on crates.io are defined. To propose
# a change to the categories, send a pull request with your change made to this
# file.
#
# For help with TOML, see: https://github.com/toml-lang/toml
#
# Format:
#
# ```toml
# [slug]
# name = "Display name"
# description = "Give an idea of the crates that belong in this category."
#
# [slug.categories.subcategory-slug]
# name = "Subcategory display name, not including parent category display name"
# description = "Give an idea of the crates that belong in this subcategory."
# ```
#
# Notes:
# - Slugs are the primary identifier. If you make a change to a category's slug,
# crates that have been published with that slug will need to be updated to
# use the new slug in order to stay in that category. If you only change
# names and descriptions, those attributes CAN be updated without affecting
# crates in that category.
# - Slugs are used in the path of URLs, so they should not contain spaces, `/`,
# `@`, `:`, or `.`. They should be all lowercase.
#
[accessibility]
name = "Accessibility"
description = """
Assistive technology that helps overcome disabilities and impairments to make software usable by as many people as possible. \
"""
[aerospace]
name = "Aerospace"
description = """
Crates for aeronautics (within the atmosphere) and astronautics \
(in outer space) implications.\
"""
[aerospace.categories.drones]
name = "Drones"
description = """
Crates related to Multicopters, Fixed wing, VTOL (Vertical Takeoff and Landing) \
and Airships/Balloons.\
"""
[aerospace.categories.protocols]
name = "Aerospace protocols"
description = """
Crates of protocol implementations for aerospace implications.\
"""
[aerospace.categories.simulation]
name = "Aerospace simulations"
description = """
Crates related to any kind of simulations used in aerospace - fluids, \
aerodynamics, etc.\
"""
[aerospace.categories.space-protocols]
name = "Space protocols"
description = """
Protocol implementations for implications in space like CCSDS.\
"""
[aerospace.categories.unmanned-aerial-vehicles]
name = "Unmanned aerial vehicles"
description = """
Crates related to Unmanned aerial vehicles like Multicopters, Fixed wing, \
VTOL (Vertical Takeoff and Landing), Airships/Balloons, Rovers, Boats, \
Submersibles.\
"""
[algorithms]
name = "Algorithms"
description = """
Rust implementations of core algorithms such as hashing, sorting, \
searching, and more.\
"""
[api-bindings]
name = "API bindings"
description = """
Idiomatic wrappers of specific APIs for convenient access from \
Rust. Includes HTTP API wrappers as well. Non-idiomatic or unsafe \
bindings can be found in External FFI bindings.\
"""
[asynchronous]
name = "Asynchronous"
description = """
Crates to help you deal with events independently of the main program \
flow, using techniques like futures, promises, waiting, or eventing.\
"""
[authentication]
name = "Authentication"
description = """
Crates to help with the process of confirming identities.\
"""
[caching]
name = "Caching"
description = """
Crates to store the results of previous computations in order to reuse \
the results.\
"""
[compilers]
name = "Compilers"
description = """
Compiler implementations, including interpreters and transpilers.\
"""
[command-line-interface]
name = "Command-line interface"
description = """
Crates to help create command line interfaces, such as argument \
parsers, line-editing, or output coloring and formatting.\
"""
[command-line-utilities]
name = "Command line utilities"
description = """
Applications to run at the command line.\
"""
[compression]
name = "Compression"
description = """
Algorithms for making data smaller.\
"""
[computer-vision]
name = "Computer vision"
description = """
Crates for comprehending the world from video or images.\
"""
[config]
name = "Configuration"
description = """
Crates to facilitate configuration management for applications.\
"""
[concurrency]
name = "Concurrency"
description = """
Crates for implementing concurrent and parallel computation.\
"""
[cryptography]
name = "Cryptography"
description = """
Algorithms intended for securing data.\
"""
[cryptography.categories.cryptocurrencies]
name = "Cryptocurrencies"
description = """
Crates for digital currencies, wallets, and distributed ledgers.\
"""
[database]
name = "Database interfaces"
description = """
Crates to interface with database management systems.\
"""
[database-implementations]
name = "Database implementations"
description = """
Databases allow clients to store and query large amounts of data in an \
efficient manner. This category is for database management systems \
implemented in Rust.\
"""
[data-structures]
name = "Data structures"
description = """
Rust implementations of particular ways of organizing data suited for \
specific purposes.\
"""
[date-and-time]
name = "Date and time"
description = """
Crates to manage the inherent complexity of dealing with the fourth \
dimension.\
"""
[development-tools]
name = "Development tools"
description = """
Crates that provide developer-facing features such as testing, debugging, \
linting, performance profiling, autocompletion, formatting, and more.\
"""
[development-tools.categories.build-utils]
name = "Build Utils"
description = """
Utilities for build scripts and other build time steps.\
"""
[development-tools.categories.cargo-plugins]
name = "Cargo plugins"
description = """
Subcommands that extend the capabilities of Cargo.\
"""
[development-tools.categories.debugging]
name = "Debugging"
description = """
Crates to help you figure out what is going on with your code such as \
logging, tracing, or assertions.\
"""
[development-tools.categories.ffi]
name = "FFI"
description = """
Crates to help you better interface with other languages. This \
includes binding generators and helpful language constructs.\
"""
[development-tools.categories.procedural-macro-helpers]
name = "Procedural macro helpers"
description = """
Crates to help you write procedural macros in Rust.
"""
[development-tools.categories.profiling]
name = "Profiling"
description = """
Crates to help you figure out the performance of your code.\
"""
[development-tools.categories.testing]
name = "Testing"
description = """
Crates to help you verify the correctness of your code.\
"""
[email]
name = "Email"
description = """
Crates to help with sending, receiving, formatting, and parsing email.\
"""
[embedded]
name = "Embedded development"
description = """
Crates that are primarily useful on embedded devices or \
without an operating system.
"""
[emulators]
name = "Emulators"
description = """
Emulators allow one computer to behave like another, often to allow \
running software that is not natively available on the host \
computer. Video game systems are commonly emulated.\
"""
[encoding]
name = "Encoding"
description = """
Encoding and/or decoding data from one data format to another.\
"""
[external-ffi-bindings]
name = "External FFI bindings"
description = """
Direct Rust FFI bindings to libraries written in other languages; \
often denoted by a -sys suffix. Safe and idiomatic wrappers are in \
the API bindings category.
"""
[filesystem]
name = "Filesystem"
description = """
Crates for dealing with files and filesystems.\
"""
[finance]
name = "Finance"
description = """
Crates for dealing with money. Accounting, trading, investments, taxes, banking and payment processing using government-backed currencies.\
"""
[game-engines]
name = "Game engines"
description = """
For crates that try to provide a \"one-stop-shop\" for \
all of your game development needs.\
"""
[game-development]
name = "Game development"
description = """
For crates that focus on some individual part of accelerating \
the development of games.\
"""
[games]
name = "Games"
description = """
Applications for fun and entertainment. If Rust the video game were \
implemented in Rust the programming language, it would belong in this \
category. Libraries to help create video games are in the \
Game engines category.\
"""
[graphics]
name = "Graphics"
description = """
Crates for graphics libraries and applications, including raster and vector \
graphics primitives such as geometry, curves, and color.\
"""
[gui]
name = "GUI"
description = """
Crates to help you create a graphical user interface.\
"""
[hardware-support]
name = "Hardware support"
description = """
Crates to interface with specific CPU or other hardware features.\
"""
[internationalization]
name = "Internationalization (i18n)"
description = """
Crates to help develop software capable of adapting to various \
languages and regions.\
"""
[localization]
name = "Localization (L10n)"
description = """
Crates to help adapting internationalized software to specific \
languages and regions.\
"""
[mathematics]
name = "Mathematics"
description = """
Crates with a mathematical aspect.
"""
[memory-management]
name = "Memory management"
description = """
Crates to help with allocation, memory mapping, garbage collection, \
reference counting, or interfaces to foreign memory managers.\
"""
[multimedia]
name = "Multimedia"
description = """
Crates that provide audio, video, and image processing or rendering \
engines.\
"""
[multimedia.categories.audio]
name = "Audio"
description = """
Crates that record, output, or process audio.
"""
[multimedia.categories.video]
name = "Video"
description = """
Crates that record, output, or process video.
"""
[multimedia.categories.images]
name = "Images"
description = """
Crates that process or build images.
"""
[multimedia.categories.encoding]
name = "Encoding"
description = """
Crates that encode or decode binary data in multimedia formats.
"""
[network-programming]
name = "Network programming"
description = """
Crates dealing with higher-level network protocols such as FTP, HTTP, \
or SSH, or lower-level network protocols such as TCP or UDP.\
"""
[no-std]
name = "No standard library"
description = """
Crates that are able to function without the Rust standard library.
"""
[no-std.categories.no-alloc]
name = "No dynamic allocation"
description = """
Crates that are able to function without the Rust alloc crate.\
"""
[os]
name = "Operating systems"
description = """
Bindings to operating system-specific APIs.\
"""
[os.categories.android-apis]
name = "Android APIs"
description = """
Bindings to Android-specific APIs.\
"""
[os.categories.linux-apis]
name = "Linux APIs"
description = """
Bindings to Linux-specific APIs.\
"""
[os.categories.freebsd-apis]
name = "FreeBSD APIs"
description = """
Bindings to FreeBSD-specific APIs.\
"""
[os.categories.macos-apis]
name = "macOS APIs"
description = """
Bindings to macOS-specific APIs.\
"""
[os.categories.unix-apis]
name = "Unix APIs"
description = """
Bindings to Unix-specific APIs.\
"""
[os.categories.windows-apis]
name = "Windows APIs"
description = """
Bindings to Windows-specific APIs.\
"""
[parser-implementations]
name = "Parser implementations"
description = """
Parsers implemented for particular formats or languages.\
"""
[parsing]
name = "Parsing tools"
description = """
Crates to help create parsers of binary and text \
formats. Format-specific parsers belong in other, more specific \
categories.\
"""
[rendering]
name = "Rendering"
description = """
Real-time or offline rendering of 2D or 3D graphics, \
usually with the help of a graphics card.\
"""
[rendering.categories.engine]
name = "Rendering engine"
description = """
High-level solutions for rendering on the screen.\
"""
[rendering.categories.graphics-api]
name = "Graphics APIs"
description = """
Crates that provide direct access to the hardware's or the operating \
system's rendering capabilities.\
"""
[rendering.categories.data-formats]
name = "Data formats"
description = """
Loading and parsing of data formats related to 2D or 3D rendering, like \
3D models or animation sheets.\
"""
[rust-patterns]
name = "Rust patterns"
description = """
Shared solutions for particular situations specific to programming in \
Rust.\
"""
[science]
name = "Science"
description = """
Crates related to solving problems involving physics, chemistry, \
biology, machine learning, geoscience, and other scientific fields.\
"""
[science.categories.geo]
name = "Geospatial"
description = """
Processing of spatial information, maps, navigation data, and geographic information systems.
"""
[science.categories.robotics]
name = "Robotics"
description = """
Crates related to robotics.\
"""
[science.categories.neuroscience]
name = "Neuroscience"
description = """
Crates for research tools and processing of data related to the brain and nervous system.\
"""
[science.categories.bioinformatics]
name = "Bioinformatics"
description = """
Crates for processing large-scale biological data.\
"""
[science.categories.bioinformatics.categories.genomics]
name = "Genomics"
description = """
Crates for processing genetic data, including sequences, abdundance, variants and analysis.\
"""
[science.categories.bioinformatics.categories.proteomics]
name = "Proteomics"
description = """
Crates for processing protein data including sequences, abdundance and analysis.\
"""
[science.categories.bioinformatics.categories.sequence-analysis]
name = "Sequence analysis"
description = """
Crates for processing biological sequences, including alignment, assembly, and annotation.\
"""
[simulation]
name = "Simulation"
description = """
Crates used to model or construct models for some activity, e.g. to.\
simulate a networking protocol.\
"""
[template-engine]
name = "Template engine"
description = """
Crates designed to combine templates with data to produce result \
documents, usually with an emphasis on processing text.\
"""
[text-editors]
name = "Text editors"
description = """
Applications for editing text.\
"""
[text-processing]
name = "Text processing"
description = """
Crates to deal with the complexities of human language when expressed \
in textual form.\
"""
[value-formatting]
name = "Value formatting"
description = """
Crates to allow an application to format values for display to a user, \
potentially adapting the display to various languages and regions.\
"""
[virtualization]
name = "Virtualization"
description = """
For the creation and management of virtual environments and resources
of any form including containerization systems.\
"""
[visualization]
name = "Visualization"
description = """
Ways to view data, such as plotting or graphing.\
"""
[wasm]
name = "WebAssembly"
description = """
Crates for use when targeting WebAssembly, or for manipulating WebAssembly.\
"""
[web-programming]
name = "Web programming"
description = """
Crates to create applications for the web.\
"""
[web-programming.categories.http-client]
name = "HTTP client"
description = """
Crates to make HTTP network requests.\
"""
[web-programming.categories.http-server]
name = "HTTP server"
description = """
Crates to serve data over HTTP.\
"""
[web-programming.categories.websocket]
name = "WebSocket"
description = """
Crates to communicate over the WebSocket protocol.\
"""