Metadata-Version: 2.4
Name: mk-pass
Version: 0.1.1
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Information Technology
Classifier: Natural Language :: English
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Build Tools
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Dist: pytest==8.4.1 ; extra == 'test'
Provides-Extra: test
Summary: A comprehensive password generator.
Keywords: password,generator,random,comprehensive,rust
Author-email: Brendan Doherty <2bndy5@gmail.com>
License: MIT License
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: source, https://github.com/2bndy5/mk-pass
Project-URL: tracker, https://github.com/2bndy5/mk-pass/issues

[cli-doc]: https://mk-pass.readthedocs.io/en/latest/cli/

<!-- start -->

# Comprehensive Password Generator

This cross-platform compatible software will generate a password comprehensively.

[![rust-ci-badge][rust-ci-badge]][rust-ci-link]
[![cpp-ci-badge][cpp-ci-badge]][cpp-ci-link]
[![python-ci-badge][python-ci-badge]][python-ci-link]
[![node-ci-badge][node-ci-badge]][node-ci-link]
[![codecov-badge][codecov-badge]][codecov-link]
[![rtd-badge][rtd-badge]][rtd-link]
[![CHANGELOG][changelog-badge]][changelog-link]

[rust-ci-badge]: https://github.com/2bndy5/mk-pass/actions/workflows/rust.yml/badge.svg
[rust-ci-link]: https://github.com/2bndy5/mk-pass/actions/workflows/rust.yml
[cpp-ci-badge]: https://github.com/2bndy5/mk-pass/actions/workflows/cpp.yml/badge.svg
[cpp-ci-link]: https://github.com/2bndy5/mk-pass/actions/workflows/cpp.yml
[python-ci-badge]: https://github.com/2bndy5/mk-pass/actions/workflows/python.yml/badge.svg
[python-ci-link]: https://github.com/2bndy5/mk-pass/actions/workflows/python.yml
[node-ci-badge]: https://github.com/2bndy5/mk-pass/actions/workflows/node.yml/badge.svg
[node-ci-link]: https://github.com/2bndy5/mk-pass/actions/workflows/node.yml
[codecov-badge]: https://codecov.io/gh/2bndy5/mk-pass/graph/badge.svg?token=6WKCQFHZTQ
[codecov-link]: https://codecov.io/gh/2bndy5/mk-pass
[rtd-badge]: https://img.shields.io/readthedocs/mk-pass
[rtd-link]: https://mk-pass.readthedocs.io/
[changelog-badge]: https://img.shields.io/badge/keep_a_change_log-v1.1.0-ffec3d
[changelog-link]: https://mk-pass.readthedocs.io/en/latest/CHANGELOG/

## Features

Admittedly, the word "comprehensive" is not a scientific term.
In this software, the term "comprehensive" boasts the following features
when generating a password:

1. No characters are repeated (unless explicitly allowed).
2. Ensure at least one of each type of character is present:
    - uppercase letters
    - lowercase letters
    - decimal integers (if permitted)
    - special characters (if permitted)
3. Ensure the first character is a letter (if enabled).
   When enabled, the first character will be either a uppercase or
   lowercase alphabetical letter.

### What is a "special" character?

This software uses the following set of characters to generate special characters in a password:

> ``- . / \ : ` + & , @ $ ! _ # % ~``

The space character is not actually considered a special character,
but spaces are used to make the above set more readable.

Obviously, this is not an exhaustive list of all printable, non-alphanumeric characters.
However, these are special characters that are widely accepted by most sign-on services.

## Command Line Interface

While this software can be used as a library, a binary executable is also provided for each release.

A document generated from the rust sources details the CLI options.
See the hosted [CLI doc][cli-doc].

The following command will print the available options and their default values.

```shell
mk-pass -h
```

