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)
-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.1.1.tar.gz (7.7 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.1.1-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for fmfug-1.1.1.tar.gz
Algorithm Hash digest
SHA256 64b07414737f1825895da3203cc06e03cab775c91706363c6d206905c367bd46
MD5 344f4678a21e357a54156caaffefa91a
BLAKE2b-256 c531daaaef303b45a49a453d559d58f6451136e0b7f09193d43b146e46fa672c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fmfug-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.1 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 173fd6a9f47b1639babe0ef946c0f4b4e991ec77a9caded82b3d1cc3f4317870
MD5 dd12c82a437a5b69cfe13b39849dd12d
BLAKE2b-256 5733ec8a8d41990584700a6899715caa253dade1bac174b4e0d4b298a0e0d338

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