Skip to content
Open
Changes from all commits
Commits
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
127 changes: 92 additions & 35 deletions src/boot/categories.toml
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ Crates related to the automotive industry, including vehicle control and diagnos
[caching]
name = "Caching"
description = """
Crates to store the results of previous computations in order to reuse
Crates to store the results of previous computations in order to reuse
the results.
"""

Expand All @@ -123,7 +123,7 @@ Compiler implementations, including interpreters and transpilers.
[command-line-interface]
name = "Command-line interface"
description = """
Crates to help create command line interfaces, such as argument
Crates to help create command line interfaces, such as argument
parsers, line-editing, or output coloring and formatting.
"""

Expand Down Expand Up @@ -178,29 +178,29 @@ 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
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
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
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,
Crates that provide developer-facing features such as testing, debugging,
linting, performance profiling, autocompletion, formatting, and more.
"""

Expand All @@ -219,14 +219,14 @@ 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
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
Crates to help you better interface with other languages. This
includes binding generators and helpful language constructs.
"""

Expand Down Expand Up @@ -257,15 +257,15 @@ Crates to help with sending, receiving, formatting, and parsing email.
[embedded]
name = "Embedded development"
description = """
Crates that are primarily useful on embedded devices or
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
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.
"""

Expand All @@ -278,8 +278,8 @@ 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
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.
"""

Expand All @@ -298,30 +298,30 @@ Crates for dealing with money. Accounting, trading, investments, taxes, banking
[game-engines]
name = "Game engines"
description = """
For crates that try to provide a \"one-stop-shop\" for
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
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
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
Crates for graphics libraries and applications, including raster and vector
graphics primitives such as geometry, curves, and color.
"""

Expand All @@ -340,14 +340,14 @@ 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
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
Crates to help adapting internationalized software to specific
languages and regions.
"""

Expand All @@ -360,14 +360,14 @@ Crates with a mathematical aspect.
[memory-management]
name = "Memory management"
description = """
Crates to help with allocation, memory mapping, garbage collection,
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
Crates that provide audio, video, and image processing or rendering
engines.
"""

Expand Down Expand Up @@ -398,7 +398,7 @@ 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,
Crates dealing with higher-level network protocols such as FTP, HTTP,
or SSH, or lower-level network protocols such as TCP or UDP.
"""

Expand Down Expand Up @@ -465,15 +465,15 @@ 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
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,
Real-time or offline rendering of 2D or 3D graphics,
usually with the help of a graphics card.
"""

Expand All @@ -486,31 +486,88 @@ 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
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
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
Shared solutions for particular situations specific to programming in
Rust.
"""

[science]
name = "Science"
description = """
Crates related to solving problems involving physics, chemistry,
Crates related to solving problems involving physics, chemistry,
biology, machine learning, geoscience, and other scientific fields.
"""

[science.categories.computational-chemistry]
name = "Computational Chemistry"
description = """
Crates for computational methods in chemistry, including
electronic-structure calculations, molecular simulation, and
cheminformatics.
"""

[science.categories.computational-chemistry.categories.electronic-structure]
name = "Electronic Structure"
description = """
Crates for quantum chemistry and electronic-structure methods such as
DFT, ab initio, and correlated techniques.
"""

[science.categories.computational-chemistry.categories.molecular-simulation]
name = "Molecular Simulation"
description = """
Crates for molecular dynamics, Monte Carlo, force fields, and
statistical mechanics simulations.
"""

[science.categories.computational-chemistry.categories.cheminformatics]
name = "Cheminformatics"
description = """
Crates for molecular representations, descriptors, chemical graph
algorithms, file format parsing, and QSAR tooling.
"""

[science.categories.computational-biology]
name = "Computational Biology"
description = """
Crates for computational modeling and simulation of biological systems,
including structural modeling and systems-level modeling.
"""
Comment on lines +543 to +548
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, we already have the "Bioinformatics" category below. having a "Computational Biology" category next to it seems a little confusing to me... 😅

is there some way we can resolve this? can we merge them? rename the new one in some way?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually started with that exact approach (see 140fbf3). However, during the discussion, we realized it’s better to distinguish between sequence biology (2D) and structural biology (3D).

As noted in this feedback:

@TKanX we are entering the thin ice of terminology here, but to me structural bioinformatics sounds somewhat weird because, again, historically bioinformatics is about genes, sequences and evolution. I'd recommend sticking to computational biology / computational chemistry since these are established terms, which are natural to search for.

@yesint @Luthaf Do you have any suggestions?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fncnt @Turbo87 Do you have any suggestions?


[science.categories.computational-biology.categories.structural-modeling]
name = "Structural Modeling"
description = """
Crates for protein and biomolecular structure prediction, docking,
model refinement, and physics-based biomolecular simulation.
"""

[science.categories.computational-biology.categories.systems-biology]
name = "Systems Biology"
description = """
Crates for network modeling, pathway and metabolic modeling, and
whole-system simulations.
"""

[science.categories.materials]
name = "Materials Science"
description = """
Crates for the study, characterization, and simulation of condensed matter
and materials, including crystallography and solid-state physics.
"""

[science.categories.geo]
name = "Geospatial"
description = """
Expand Down Expand Up @@ -569,7 +626,7 @@ simulate a networking protocol.
[template-engine]
name = "Template engine"
description = """
Crates designed to combine templates with data to produce result
Crates designed to combine templates with data to produce result
documents, usually with an emphasis on processing text.
"""

Expand All @@ -582,14 +639,14 @@ Applications for editing text.
[text-processing]
name = "Text processing"
description = """
Crates to deal with the complexities of human language when expressed
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,
Crates to allow an application to format values for display to a user,
potentially adapting the display to various languages and regions.
"""

Expand Down