Skip to main content

Fast Memory Friendly Username Generator

Project description

$$$$$$$$\ $$\      $$\ $$$$$$$$\ $$\   $$\  $$$$$$\  
$$  _____|$$$\    $$$ |$$  _____|$$ |  $$ |$$  __$$\ 
$$ |      $$$$\  $$$$ |$$ |      $$ |  $$ |$$ /  \__|
$$$$$\    $$\$$\$$ $$ |$$$$$\    $$ |  $$ |$$ |$$$$\ 
$$  __|   $$ \$$$  $$ |$$  __|   $$ |  $$ |$$ |\_$$ |
$$ |      $$ |\$  /$$ |$$ |      $$ |  $$ |$$ |  $$ |
$$ |      $$ | \_/ $$ |$$ |      \$$$$$$  |\$$$$$$  |
\__|      \__|     \__|\__|       \______/  \______/ 

🦂 FMFUG — Fast Memory Friendly Username Generator

FMFUG is a high-performance, multithreaded username generator written in Python. It is designed to handle millions of name combinations without consuming excessive RAM, making it ideal for generating large wordlists for pentesting, security assessments, or system administration.


🚀 Features

  • Memory Friendly: Uses lazy evaluation and streaming. Can process millions of names with minimal RAM usage.
  • Fast I/O: Implements output buffering to minimize disk write operations.
  • Multithreaded: processes names in parallel for maximum speed.
  • Customizable: Supports custom format patterns (e.g., first.last, first[1]last).
  • Combinatorial Mode: Can generate combinations from separate first and last name files (Cartesian product) without loading everything into memory.

❓ Why ❓

  • username-anarchy made my pc burn down to ashes

📦 Installation

1. Install from pypi

Using pipx

pipx install fmfug

2. Install from source

  1. Clone the repository:
    git clone https://github.com/0xudodelige/fmfug.git
    cd fmfug
    
  2. Install: Using pipx
    pipx install .
    
    (Note: The script works without tqdm, but installing it provides a progress bar).

🧑💻 Usage

usage: fmfug [-h] [-i INPUT] [-o OUTPUT] [-f FORMAT_LIST]
                [--formats FORMATS] [-t THREADS] [--no-parallel]
                [--case-sensitive] [-q] [--list-formats]
                [--first-names FIRST_NAMES] [--last-names LAST_NAMES]

Generate username variations (streaming + multithreading)

🛠 Command-Line Options

Option Description
-i, --input INPUT Input file with full names (default: users.txt, use - for stdin)
-fn, --first-names FIRST_NAMES File containing first names (one per line)
-ln, --last-names LAST_NAMES File containing last names (one per line)
-o, --output OUTPUT Output file (default: stdout)
-f, --format FORMAT_LIST Add custom format pattern (repeatable)
--formats FORMATS File containing format patterns
-t, --threads THREADS Number of threads (default: 4)
--case-sensitive Preserve original case
-q, --quiet Quiet mode (for redirection or pipe)
--list-formats Show default format patterns
-h, --help Show help message

🧩 Supported Format Patterns

Name Components

first     → full first name
last      → full last name
middle    → middle name (if present)

Combinations

firstlast
first.last
first_last
first-last
13__37@firstFOOlastBAR (Why not)

Truncation

first[1] → first character of first name (Initial)
last[4]  → first 4 characters of last name

Capitalization

First       → Capitalized
Last        → Capitalized
FirstLast   → PascalCase

Numeric Suffixes

first5  → appends 0..5
last12   → appends 0..12

📘 Examples

FMFUG Example GIF

1. Basic usage

fmfug

2. Output to file

fmfug -o usernames.txt

3. Use 8 threads

fmfug -t 8

4. Inline custom formats

fmfug -f "first.last" -f "first[1].last" -o out.txt

5. Load custom formats from file

fmfug --formats patterns.txt

6. Case-sensitive output

fmfug --case-sensitive

7. First/Last name combination mode

fmfug --first-names fn.txt --last-names ln.txt

📜 License

MIT License. See LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fmfug-1.2.2.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fmfug-1.2.2-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file fmfug-1.2.2.tar.gz.

File metadata

  • Download URL: fmfug-1.2.2.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fmfug-1.2.2.tar.gz
Algorithm Hash digest
SHA256 d89dad8e55fcfd7de1b9d5d49a820e54c9dd0dc5066c041ff0dd67ad60562387
MD5 0c2eb685133de61cfc78f0cba5ee8ca7
BLAKE2b-256 83aa7b9a65d335a9821df4464b9449b77d3e2bbe0fff4355f345044c93eb6a52

See more details on using hashes here.

Provenance

The following attestation bundles were made for fmfug-1.2.2.tar.gz:

Publisher: python-publish.yml on 0xudodelige/fmfug

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fmfug-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: fmfug-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fmfug-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a4cc81182be791f79cf9e9607f83f6b75446b9be7fcec03a3307ed8b70e2d1b5
MD5 b80ef0794020cd1924d9cbfb3a3126e0
BLAKE2b-256 4a4dd4268d3606df5a1c71e6f4eba99e45ca8b4dd59dee05e42e8d1ca518ab6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for fmfug-1.2.2-py3-none-any.whl:

Publisher: python-publish.yml on 0xudodelige/fmfug

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page