Comparação de ferramentas

FakeForge vs. python-brasilidades

As duas bibliotecas geram documentos brasileiros válidos em Python. python-brasilidades é a alternativa mais próxima do FakeForge no ecossistema Python. As diferenças importam quando você precisa de CNPJ alfanumérico 2026, presets correlacionados ou stack polyglot.

TL;DR

  • python-brasilidades: lib Python madura com CPF, CNPJ, RG, CNH válidos. Cobre básico e funciona offline (sem chamar API). Zero deps runtime.
  • FakeForge: tem SDK Python (`pip install fakeforge-br`) + presets correlacionados + CNPJ alfanumérico 2026 + API HTTP pra polyglot.
  • Quando python-brasilidades chega: use ela. Mais simples, offline, menor superfície.
  • Quando FakeForge chega: presets, novo formato CNPJ, CI em múltiplas linguagens, seed de banco em volume alto.

Comparação lado a lado

RecursoFakeForgepython-brasilidades
CPF com mod-11
CNPJ com mod-11
CNPJ alfanumérico 2026
Cartão com Luhn
Chave PIX BACEN (4 formatos)
RG por estado
CNH DENATRAN
Correlação nome ↔ email ↔ DDD
Presets bundle (customer, employee)
17 bancos com DV
Offline (sem chamar API)❌ (chama api.fakeforge.com.br)
SDK Python oficial✅ (pip install fakeforge-br)✅ (pip install brasilidades)
Zero deps runtime
Uso via API HTTP (polyglot)

Código lado a lado

python-brasilidades

from brasilidades.documentos import cpf, cnpj

# Gera 1 CPF
c = cpf.gerar()  # "123.456.789-09"

# Gera 1 CNPJ
n = cnpj.gerar()  # "12.345.678/0001-90"

# Loop pra volume
cpfs = [cpf.gerar() for _ in range(1000)]

FakeForge SDK

from fakeforge import FakeForge

ff = FakeForge()

# Gera 1000 CPFs em 1 chamada
cpfs = ff.cpf(1000)

# Gera 100 pessoas correlacionadas
customers = ff.preset("customer", 100)
# Cada customer tem CPF + email deriva
# do nome + DDD × UF coerente

# CNPJ alfanumérico 2026
cnpjs = ff.cnpj_alfa(50)

Quando escolher cada

Use python-brasilidades se:

  • Você quer geração 100% offline sem dependência de API externa
  • Só precisa dos tipos básicos: CPF, CNPJ, CNH, RG
  • Não precisa de correlação entre campos (email deriva do nome, DDD × UF)
  • Prefere lib madura com anos de mercado
  • Não usa outras linguagens no CI (só Python)

Use FakeForge se:

  • Precisa de CNPJ alfanumérico 2026 (IN RFB 2.229) - único que cobre
  • Quer presets correlacionados (customer com CPF + email + endereço + PIX)
  • Precisa gerar chave PIX BACEN, cartão com Luhn, ou conta bancária com DV real
  • Tem stack polyglot (Python + Node + Go) - API HTTP evita instalar dep em cada linguagem
  • Precisa de volume alto (10.000+ items por chamada no plano Dev)

Use as duas se:

  • Testes unitários offline com python-brasilidades + testes E2E com FakeForge preset customer
  • Django app + microserviços em Node: python-brasilidades no Django + FakeForge no Node

Django seed side-by-side

Exemplo prático: popular tabela Customer com 1000 registros usando cada biblioteca.

python-brasilidades

from brasilidades.documentos import cpf
from faker import Faker

fake = Faker("pt_BR")

for _ in range(1000):
    Customer.objects.create(
        cpf=cpf.gerar(),
        name=fake.name(),
        email=fake.email(),
        phone=fake.phone_number(),
        # Note: campos NÃO correlacionados
        # email não deriva do name
    )

FakeForge SDK

from fakeforge import FakeForge

ff = FakeForge(api_key="sua_key")

customers = ff.preset("customer", 1000)

Customer.objects.bulk_create([
    Customer(
        cpf=c["cpf"],
        name=c["name"],
        email=c["email"],       # deriva do nome
        phone=c["phone"],       # DDD bate com UF
        address=c["address"],   # coerente
    )
    for c in customers
])

A diferença é que FakeForge devolve dados coerentes entre si - útil pra teste de sistemas de antifraude, KYC, ou cross-check de dados. python-brasilidades entrega campos independentes válidos, o que basta pra maioria dos testes.

Outras comparações relacionadas