Skip to content

Commit 6df510b

Browse files
authored
Merge pull request #488 from integer32llc/proposed-categories
What categories should be available on crates.io? [BIKESHED ALERT 🚲🏠🚨]
2 parents 4f09d9f + 2c1b405 commit 6df510b

File tree

1 file changed

+330
-18
lines changed

1 file changed

+330
-18
lines changed

β€Žsrc/categories.toml

+330-18
Original file line numberDiff line numberDiff line change
@@ -26,30 +26,342 @@
2626
# `@`, `:`, or `.`. They should be all lowercase.
2727
#
2828

29+
[algorithms]
30+
name = "Algorithms"
31+
description = """
32+
Rust implementations of core algorithms such as hashing, sorting, \
33+
searching, and more.\
34+
"""
35+
36+
[api-bindings]
37+
name = "API bindings"
38+
description = """
39+
Wrappers of specific APIs for convenient access from Rust. Includes \
40+
HTTP API wrappers.
41+
"""
42+
43+
[asynchronous]
44+
name = "Asynchronous"
45+
description = """
46+
Crates to help you deal with events independently of the main program \
47+
flow, using techniques like futures, promises, waiting, or eventing.\
48+
"""
49+
50+
[authentication]
51+
name = "Authentication"
52+
description = """
53+
Crates to help with the process of confirming identities.\
54+
"""
55+
56+
[caching]
57+
name = "Caching"
58+
description = """
59+
Crates to store the results of previous computations in order to reuse \
60+
the results.\
61+
"""
62+
63+
[command-line-interface]
64+
name = "Command-line interface"
65+
description = """
66+
Crates to help create command line interfaces, such as argument \
67+
parsers, line-editing, or output coloring and formatting.\
68+
"""
69+
70+
[command-line-utilities]
71+
name = "Command line utilities"
72+
description = """
73+
Applications to run at the command line.\
74+
"""
75+
76+
[compression]
77+
name = "Compression"
78+
description = """
79+
Algorithms for making data smaller.\
80+
"""
81+
82+
[concurrency]
83+
name = "Concurrency"
84+
description = """
85+
Crates for implementing concurrent and parallel computation.\
86+
"""
87+
88+
[cryptography]
89+
name = "Cryptography"
90+
description = """
91+
Algorithms intended for securing data.\
92+
"""
93+
94+
[database]
95+
name = "Database Interfaces"
96+
description = """
97+
Crates to interface with database management systems.\
98+
"""
99+
100+
[database-implementations]
101+
name = "Database Implementations"
102+
description = """
103+
Databases allow clients to store and query large amounts of data in an \
104+
efficient manner. This category is for database management systems \
105+
implemented in Rust.\
106+
"""
107+
108+
[data-structures]
109+
name = "Data structures"
110+
description = """
111+
Rust implementations of particular ways of organizing data suited for \
112+
specific purposes.\
113+
"""
114+
115+
[date-and-time]
116+
name = "Date and time"
117+
description = """
118+
Crates to manage the inherent complexity of dealing with the fourth \
119+
dimension.\
120+
"""
121+
29122
[development-tools]
30-
name = "Development Tools"
31-
description = "Ways to make developing in Rust better"
123+
name = "Development tools"
124+
description = """
125+
Make writing Rust code easier with code autocompletion, linting, \
126+
formatting and more. These crates are developer-facing as opposed to \
127+
user-facing.\
128+
"""
129+
130+
[development-tools.categories.cargo-plugins]
131+
name = "Cargo plugins"
132+
description = """
133+
Subcommands that extend the capabilities of Cargo.\
134+
"""
135+
136+
[development-tools.categories.debugging]
137+
name = "Debugging"
138+
description = """
139+
Crates to help you figure out what is going on with your code such as \
140+
logging, tracing, or assertions.\
141+
"""
142+
143+
[development-tools.categories.ffi]
144+
name = "FFI"
145+
description = """
146+
Crates to help you better interface with other languages. This \
147+
includes binding generators and helpful language constructs.\
148+
"""
149+
150+
[development-tools.categories.profiling]
151+
name = "Profiling"
152+
description = """
153+
Crates to help you figure out the performance of your code.\
154+
"""
32155

33-
[development-tools.categories.testing]
34-
name = "Testing"
35-
description = "Additions to automated testing features"
156+
[development-tools.categories.testing]
157+
name = "Testing"
158+
description = """
159+
Crates to help you verify the correctness of your code.\
160+
"""
36161

37-
[development-tools.categories.testing.categories.mocking]
38-
name = "Mocking"
39-
description = "Mocks are not the same as stubs!"
162+
[email]
163+
name = "Email"
164+
description = """
165+
Crates to help with Sending, receiving, formatting, and parsing email.\
166+
"""
40167

41-
[libraries]
42-
name = "Libraries"
43-
description = "Libraries are reusable pieces of code"
168+
[emulators]
169+
name = "Emulators"
170+
description = """
171+
Emulators allow one computer to behave like another, often to allow \
172+
running software that is not natively available on the host \
173+
computer. Video game systems are commonly emulated.\
174+
"""
44175

45-
[libraries.categories.async]
46-
name = "Async"
47-
description = "Code that can take time to run but won't block"
176+
[encoding]
177+
name = "Encoding"
178+
description = """
179+
Encoding and/or decoding data from one data format to another.\
180+
"""
48181

49-
[libraries.categories.date-and-time]
50-
name = "Date and Time"
51-
description = "Date and time math"
182+
[external-ffi-bindings]
183+
name = "External FFI bindings"
184+
description = """
185+
Rust FFI bindings to libraries written in other languages.\
186+
"""
187+
188+
[filesystem]
189+
name = "Filesystem"
190+
description = """
191+
Crates for dealing with files and filesystems.\
192+
"""
193+
194+
[game-engines]
195+
name = "Game engines"
196+
description = """
197+
Crates for creating games.\
198+
"""
52199

53200
[games]
54201
name = "Games"
55-
description = "Share fun things"
202+
description = """
203+
Applications for fun and entertainment. If Rust the video game were \
204+
implemented in Rust the programming language, it would belong in this \
205+
category. Libraries to help create video games are in the \
206+
Game engines category.\
207+
"""
208+
209+
[gui]
210+
name = "GUI"
211+
description = """
212+
Crates to help you create a graphical user interface.\
213+
"""
214+
215+
[hardware-support]
216+
name = "Hardware Support"
217+
description = """
218+
Crates to interface with specific CPU or other hardware features.\
219+
"""
220+
221+
[memory-management]
222+
name = "Memory management"
223+
description = """
224+
Crates to help with allocation, memory mapping, garbage collection, \
225+
reference counting, or interfaces to foreign memory managers.\
226+
"""
227+
228+
[multimedia]
229+
name = "Multimedia"
230+
description = """
231+
Crates that provide audio, video, and image processing or rendering \
232+
engines.\
233+
"""
234+
235+
[multimedia.categories.audio]
236+
name = "Audio"
237+
description = """
238+
Crates that record, output, or process audio.
239+
"""
240+
241+
[multimedia.categories.video]
242+
name = "Video"
243+
description = """
244+
Crates that record, output, or process video.
245+
"""
246+
247+
[multimedia.categories.images]
248+
name = "Images"
249+
description = """
250+
Crates that process or render images.
251+
"""
252+
253+
[multimedia.categories.encoding]
254+
name = "Encoding"
255+
description = """
256+
Crates that encode or decode binary data in multimedia formats.
257+
"""
258+
259+
[network-programming]
260+
name = "Network programming"
261+
description = """
262+
Crates dealing with higher-level network protocols such as FTP, HTTP, \
263+
or SSH, or lower-level network protocols such as TCP or UDP.\
264+
"""
265+
266+
[os]
267+
name = "Operating systems"
268+
description = """
269+
Bindings to operating system-specific APIs.\
270+
"""
271+
272+
[os.categories.macos-apis]
273+
name = "mac OS APIs"
274+
description = """
275+
Bindings to mac OS-specific APIs.\
276+
"""
277+
278+
[os.categories.unix-apis]
279+
name = "Unix APIs"
280+
description = """
281+
Bindings to Unix-specific APIs.\
282+
"""
283+
284+
[os.categories.windows-apis]
285+
name = "Windows APIs"
286+
description = """
287+
Bindings to Windows-specific APIs.\
288+
"""
289+
290+
[parsing]
291+
name = "Parsing"
292+
description = """
293+
Crates to help create parsers of binary and text \
294+
formats. Format-specific parsers belong in other, more specific \
295+
categories.\
296+
"""
297+
298+
[rust-patterns]
299+
name = "Rust Patterns"
300+
description = """
301+
Shared solutions for particular situations specific to programming in \
302+
Rust.\
303+
"""
304+
305+
[science]
306+
name = "Science"
307+
description = """
308+
Crates related to solving problems involving math, physics, chemistry, \
309+
biology, machine learning, geoscience, and other scientific fields.\
310+
"""
311+
312+
[template-engine]
313+
name = "Template engine"
314+
description = """
315+
Crates designed to combine templates with data to produce result \
316+
documents, usually with an emphasis on processing text.\
317+
"""
318+
319+
[text-editors]
320+
name = "Text editors"
321+
description = """
322+
Applications for editing text.\
323+
"""
324+
325+
[text-processing]
326+
name = "Text processing"
327+
description = """
328+
Crates to deal with the complexities of human language when expressed \
329+
in textual form.\
330+
"""
331+
332+
[value-formatting]
333+
name = "Value formatting"
334+
description = """
335+
Crates to allow an application to format values for display to a user, \
336+
potentially adapting the display to various languages and regions.\
337+
"""
338+
339+
[visualization]
340+
name = "Visualization"
341+
description = """
342+
Ways to view data, such as plotting or graphing.\
343+
"""
344+
345+
[web-programming]
346+
name = "Web programming"
347+
description = """
348+
Crates to create applications for the web.\
349+
"""
350+
351+
[web-programming.categories.http-client]
352+
name = "HTTP Client"
353+
description = """
354+
Crates to make HTTP network requests.\
355+
"""
356+
357+
[web-programming.categories.http-server]
358+
name = "HTTP Server"
359+
description = """
360+
Crates to serve data over HTTP.\
361+
"""
362+
363+
[web-programming.categories.websocket]
364+
name = "WebSocket"
365+
description = """
366+
Crates to communicate over the WebSocket protocol.\
367+
"""

0 commit comments

Comments
Β (0)