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, f-last, first[3]last).
  • Combinatorial Mode: Can generate combinations from separate first and last name files (Cartesian product) without loading everything into memory.

📦 Installation

  1. Clone the repository:

    git clone [https://github.com/0xudodelige/fmfug.git](https://github.com/0xudodelige/fmfug.git)
    cd fmfug
    
  2. Install:

    Using pip

    pip 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)
-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 "f.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.0.0.tar.gz (7.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.0.0-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fmfug-1.0.0.tar.gz
  • Upload date:
  • Size: 7.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.0.0.tar.gz
Algorithm Hash digest
SHA256 7a2b63a5008c33a04144124a2b8e726b4749dbd6f09990ec860258ab5d163c27
MD5 70e7fba596b9e6dfd31638b0bb603461
BLAKE2b-256 5f31f11d436bf92c0bcb6f74051d1b126d3055bd93cf5faa7ac142a080104b80

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fmfug-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.0 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.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4de5017e0636d845d51b03f05f173bd28bcdffcf92e49eea64f8d41028dfc1ef
MD5 9f3f0ac2fd6791a72ca152dbc8b10133
BLAKE2b-256 7e13132b42caa46bde3ba270ff8d8a9ef45f9a72e4028cf7d136c8e49f60bd3a

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