Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What categories should be available on crates.io? [BIKESHED ALERT 🚲🏠🚨] #488

Merged
merged 35 commits into from
Jan 17, 2017
Merged
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
1a8acc4
Proposed categories to be made available
carols10cents Dec 7, 2016
6b53503
Add libraries::internationalization
carols10cents Dec 7, 2016
109d32f
Move FFI categories beneath Libraries instead of Dev Tools
carols10cents Dec 8, 2016
54603ce
Change Applications::Audio to Multimedia
carols10cents Dec 8, 2016
68370c8
Adding a category for ownership-related libs
carols10cents Dec 8, 2016
b5fd180
Adding GUI
carols10cents Dec 8, 2016
4958ba9
Move cross compiling out of the embedded category
carols10cents Dec 8, 2016
e8812d8
Remove mruby; only have Ruby
carols10cents Dec 8, 2016
4c7a4a2
Removing GDB/LLDB debugging subcategories
carols10cents Dec 8, 2016
d87e88c
Adding C++, Swift, and Go to the FFI libs
carols10cents Dec 8, 2016
94d359a
Organizing the sciences
carols10cents Dec 8, 2016
baa9b6b
Remove vague Computation category
carols10cents Dec 8, 2016
c296891
Remove Cloud
carols10cents Dec 8, 2016
d2d22a8
Adding categories for image encoding and 3d engines
carols10cents Dec 8, 2016
e5e43c6
Add allocators
carols10cents Dec 8, 2016
14d7e33
Adding hardware support
carols10cents Dec 8, 2016
58e4b7f
Making Allocators into a more general Memory management category
carols10cents Dec 8, 2016
4013b5e
Replace 3D engines and Game development with Game engines
carols10cents Dec 8, 2016
601eea2
Remove Cargo and Cmake build system subcategories
carols10cents Dec 8, 2016
d85a8d6
Remove CLI argument parsing
carols10cents Dec 8, 2016
70de2bd
Removing vague i/o category
carols10cents Dec 8, 2016
e337928
Add a category for cargo plugins
carols10cents Dec 8, 2016
3692f60
Remove all the language-specific FFI categories
carols10cents Dec 8, 2016
f80a757
Adding Algorithms for things like itertools; remove hashing
carols10cents Dec 8, 2016
6c1dbee
Add visualization
carols10cents Dec 8, 2016
0ed6c6f
Add FFI::External libraries
carols10cents Dec 8, 2016
f964e23
Add categories for operating system APIs
carols10cents Dec 8, 2016
65e0d05
Add Pretty printing, inspired by rustkit
carols10cents Dec 8, 2016
4fc1910
Removing NoSQL/SQL subcategories
carols10cents Dec 8, 2016
2a11f8f
Make Ownership into more general Rust patterns
carols10cents Dec 8, 2016
b61fb0a
Convert categories to TOML
shepmaster Dec 15, 2016
4f3bcaa
Add starting descriptions
shepmaster Dec 16, 2016
95d3e56
Fix TOML
carols10cents Dec 16, 2016
d8ac224
Create more subcategories under multimedia
carols10cents Jan 2, 2017
2c1b405
Remove top-level Application and Library categories
carols10cents Jan 14, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
348 changes: 330 additions & 18 deletions src/categories.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,30 +26,342 @@
# `@`, `:`, or `.`. They should be all lowercase.
#

[algorithms]
name = "Algorithms"
description = """
Rust implementations of core algorithms such as hashing, sorting, \
searching, and more.\
"""

[api-bindings]
name = "API bindings"
description = """
Wrappers of specific APIs for convenient access from Rust. Includes \
HTTP API wrappers.
"""

[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.\
"""

[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.\
"""

[concurrency]
name = "Concurrency"
description = """
Crates for implementing concurrent and parallel computation.\
"""

[cryptography]
name = "Cryptography"
description = """
Algorithms intended for securing data.\
"""

[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 = "Ways to make developing in Rust better"
name = "Development tools"
description = """
Make writing Rust code easier with code autocompletion, linting, \
formatting and more. These crates are developer-facing as opposed to \
user-facing.\
"""

[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.profiling]
name = "Profiling"
description = """
Crates to help you figure out the performance of your code.\
"""

[development-tools.categories.testing]
name = "Testing"
description = "Additions to automated testing features"
[development-tools.categories.testing]
name = "Testing"
description = """
Crates to help you verify the correctness of your code.\
"""

[development-tools.categories.testing.categories.mocking]
name = "Mocking"
description = "Mocks are not the same as stubs!"
[email]
name = "Email"
description = """
Crates to help with Sending, receiving, formatting, and parsing email.\
"""

[libraries]
name = "Libraries"
description = "Libraries are reusable pieces of code"
[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.\
"""

[libraries.categories.async]
name = "Async"
description = "Code that can take time to run but won't block"
[encoding]
name = "Encoding"
description = """
Encoding and/or decoding data from one data format to another.\
"""

[libraries.categories.date-and-time]
name = "Date and Time"
description = "Date and time math"
[external-ffi-bindings]
name = "External FFI bindings"
description = """
Rust FFI bindings to libraries written in other languages.\
"""

[filesystem]
name = "Filesystem"
description = """
Crates for dealing with files and filesystems.\
"""

[game-engines]
name = "Game engines"
description = """
Crates for creating games.\
"""

[games]
name = "Games"
description = "Share fun things"
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.\
"""

[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.\
"""

[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 render 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.\
"""

[os]
name = "Operating systems"
description = """
Bindings to operating system-specific APIs.\
"""

[os.categories.macos-apis]
name = "mac OS APIs"
description = """
Bindings to mac OS-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.\
"""

[parsing]
name = "Parsing"
description = """
Crates to help create parsers of binary and text \
formats. Format-specific parsers belong in other, more specific \
categories.\
"""

[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 math, physics, chemistry, \
biology, machine learning, geoscience, and other scientific fields.\
"""

[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.\
"""

[visualization]
name = "Visualization"
description = """
Ways to view data, such as plotting or graphing.\
"""

[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.\
"""