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.0.tar.gz (9.6 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.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fmfug-1.2.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for fmfug-1.2.0.tar.gz
Algorithm Hash digest
SHA256 79773089702467a305e0eebc5bd3eb9db6537c0e9d6f36232b82b2389824b8d4
MD5 a3cef9a6c9f847ffad9a8772f16fefca
BLAKE2b-256 f9fff8f045bdcf473568087c3cb3ddefd2bafe2544be5d5960d4b258612971bc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fmfug-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for fmfug-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bacd8785d4210735f0ac3cd915171334cba61ebda3c6b55f8b4cefde8ea71f51
MD5 35e2b4ff5404b2ced3ab08f37b17e2d9
BLAKE2b-256 ccb720031ab7778b1a4570cd8661c8a873bca4cbd6e4845cf798cd919108629d

See more details on using hashes here.

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