Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.1%) to scientific vocabulary
Scientific Fields
Repository
Starter Rust crate
Basic Info
- Host: GitHub
- Owner: SixArm
- Language: Rust
- Default Branch: main
- Size: 14.6 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Starter Rust crate for creating applications
Starter provides our opinionated ways for creating Rust command line applications.
Try it
Install:
sh
cargo install starter
Run:
sh
starter --test --verbose
Get the source code:
sh
git clone https://github.com/sixarm/starter-rust-crate.git
Goals
Goals include:
Demonstrate how to combine crates for command line argument parsing, configuration, logging, errors, etc.
Describe project conventions that help an application team with growth as well as long-term maintenance.
Provide a starting point for our new projects.
Anti-goals
Anti-goals include:
Code everything from scratch. Instead, we want to use existing crates that are well-maintained and have a large community.
Code freeze. Instead, this crate is a work in progress, and will evolve as we learn.
Compatibility with no_std, or old Rust versions, or less-supported platforms. Instead, we want to use std, and recent Rust versions, and fully-supported platforms.
Features
Features include:
Run a command line argument parser, by using the crate
clap.Load a configuration file, by using the crate
confy.Create custom errors, by using the crate
thiserror.Log messages such as trace and debug, by using the crate
thiserror.Log messages to configuration places, by using the crate
env_logger.Use assert macros for testing and production, by using the crate
assertables
Project structure
The project structure aims for clean separation of concerns of generic application capabilities.
src- Source code.app- Application generic code.args- Arguments structure; this may be set viaclap.clap- Command line argument parser i.e.clap.config- Configuration structure; this may be set viaconfy.confy- Configuration loader from a TOML file.mod- Module file that includes all the modules.paths- Path helpers, such as for directories and files.run- Run function that handles everything; called bymainorlib.
cspell.json- CSpell is a spell checker for code.
Cargo.toml
Dependencies:
assertables- Assert macros for testing and runtime in production.confy- Configuration management.clap- Command Line Argument Parser.env_logger- A logger that can be configured via environment variables.indoc- Indented document literals.mapThe map macro for creating map collections.log- Lightweight logging facade.serde- Serialize/deserialize framework. Used byconfy.thiserror- Error derive macro for the standard library std::error::Error trait.
Owner
- Name: SixArm
- Login: SixArm
- Kind: organization
- Email: sixarm@sixarm.com
- Location: San Francisco
- Website: http://sixarm.com
- Twitter: sixarm
- Repositories: 580
- Profile: https://github.com/SixArm
SixArm Software
Citation (CITATION.cff)
cff-version: 1.2.0
title: Starter Rust crate for creating applications
message: >-
If you use this work and you want to cite it,
then you can use the metadata from this file.
type: software
authors:
- given-names: Joel Parker
family-names: Henderson
email: joel@joelparkerhenderson.com
affiliation: joelparkerhenderson.com
orcid: 'https://orcid.org/0009-0000-4681-282X'
identifiers:
- type: url
value: 'https://github.com/SixArm/starter-rust-crate/'
description: Starter Rust crate for creating applications
repository-code: 'https://github.com/SixArm/starter-rust-crate/'
abstract: >-
Starter Rust crate for creating applications
license: See license file
GitHub Events
Total
- Push event: 2
- Create event: 2
Last Year
- Push event: 2
- Create event: 2
Committers
Last synced: 6 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Joel Parker Henderson | j****l@j****m | 4 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- aho-corasick 1.1.3
- anstream 0.6.18
- anstyle 1.0.10
- anstyle-parse 0.2.6
- anstyle-query 1.1.2
- anstyle-wincon 3.0.6
- assertables 9.3.0
- atty 0.2.14
- bitflags 2.6.0
- cfg-if 1.0.0
- clap 4.5.21
- clap_builder 4.5.21
- clap_lex 0.7.3
- colorchoice 1.0.3
- confy 0.6.1
- directories 5.0.1
- dirs-sys 0.4.1
- env_logger 0.9.3
- equivalent 1.0.1
- errno 0.3.9
- getrandom 0.2.15
- hashbrown 0.15.1
- hermit-abi 0.1.19
- humantime 2.1.0
- indexmap 2.6.0
- indoc 2.0.5
- is_terminal_polyfill 1.70.1
- libc 0.2.162
- libredox 0.1.3
- linux-raw-sys 0.4.14
- log 0.4.22
- map 1.3.0
- memchr 2.7.4
- option-ext 0.2.0
- proc-macro2 1.0.89
- quote 1.0.37
- redox_users 0.4.6
- regex 1.11.1
- regex-automata 0.4.9
- regex-syntax 0.8.5
- rustix 0.38.40
- serde 1.0.215
- serde_derive 1.0.215
- serde_spanned 0.6.8
- strsim 0.11.1
- syn 2.0.87
- termcolor 1.4.1
- terminal_size 0.4.0
- thiserror 1.0.69
- thiserror-impl 1.0.69
- toml 0.8.19
- toml_datetime 0.6.8
- toml_edit 0.22.22
- unicode-ident 1.0.13
- utf8parse 0.2.2
- wasi 0.11.0+wasi-snapshot-preview1
- winapi 0.3.9
- winapi-i686-pc-windows-gnu 0.4.0
- winapi-util 0.1.9
- winapi-x86_64-pc-windows-gnu 0.4.0
- windows-sys 0.48.0
- windows-sys 0.52.0
- windows-sys 0.59.0
- windows-targets 0.48.5
- windows-targets 0.52.6
- windows_aarch64_gnullvm 0.48.5
- windows_aarch64_gnullvm 0.52.6
- windows_aarch64_msvc 0.48.5
- windows_aarch64_msvc 0.52.6
- windows_i686_gnu 0.48.5
- windows_i686_gnu 0.52.6
- windows_i686_gnullvm 0.52.6
- windows_i686_msvc 0.48.5
- windows_i686_msvc 0.52.6
- windows_x86_64_gnu 0.48.5
- windows_x86_64_gnu 0.52.6
- windows_x86_64_gnullvm 0.48.5
- windows_x86_64_gnullvm 0.52.6
- windows_x86_64_msvc 0.48.5
- windows_x86_64_msvc 0.52.6
- winnow 0.6.20