elixirs/faker
70.7
Strong · 23 September 2026
35.5k
lines of production code
Elixir
primary language
5
measurements over time
What this system is
This system is a comprehensive Elixir library designed to generate realistic, localized fake data for software testing and development. It provides a wide array of modules for creating synthetic records across diverse domains, including personal identities, financial instruments, geographic addresses, and technical identifiers. The library supports extensive internationalization, offering generators for numerous languages and regions, and includes specialized content for pop culture and industry-specific data.
How it got here
2014–2015 — Initial scaffolding and module expansion
10 changes.
The project was initialized with comprehensive configuration and release automation, followed by the introduction of a robust test suite. Significant effort focused on expanding the library's capabilities by adding numerous new data generation modules and enhancing localization support across various domains.
2016–2017 — locale and domain expansion
8 changes.
This period focused on expanding the Faker library with new locale-specific generators for colors, phone numbers, and government identifiers across multiple languages. It also introduced new domain-specific data modules for beer, superheroes, and Star Wars to support diverse testing scenarios.
2018–2021 — Localization and domain expansion
11 changes.
This period focused on significantly expanding the library's internationalization support by adding localized data generators for Armenian, Brazilian Portuguese, Spanish, French, Italian, and Russian. It also introduced new domain-specific modules for industries, food, pets, addresses, blockchain, finance, AWS regions, airports, and fruits to broaden the scope of test data generation.
Features
Add English Star Wars data generation
Users can now generate Star Wars-themed content in English using the new Faker.StarWars.En module, which provides functions to randomly select character names, planet names, and quotes from curated lists.
_lib/faker/star\wars · high confidence
Add English and Armenian company data generators
New locale-specific modules have been added for generating company-related data, specifically \Faker.Company.En\ for English and \Faker.Company.Hy\ for Armenian. These modules provide functions to generate business buzzwords, prefixes, suffixes, and combined phrases (e.g., \bs()\) tailored to the respective languages, expanding the library's internationalization capabilities for company data.
lib/faker/company · high confidence
Add English and Brazilian Portuguese cat data generators
Users can now generate cat names, breeds, and registry information in English, as well as gender-specific cat names in Brazilian Portuguese. This change introduces new locale modules (\Faker.Cat.En\ and \Faker.Cat.PtBr\) that provide functions for sampling realistic cat data, expanding the library's internationalization support for pet-related content.
lib/faker/cat · high confidence
Add Italian fiscal code and US tax ID generators
Users can now generate Italian fiscal codes via \Faker.Gov.It.fiscal\_id\ and US tax identifiers via \Faker.Gov.Us.ssn\ and \Faker.Gov.Us.ein\. The new \Faker.Gov.It\ module implements the specific algorithm for Italian fiscal codes, including the CIN check digit, while \Faker.Gov.Us\ provides generators for Social Security Numbers and Employer Identification Numbers.
lib/faker/gov · high confidence
Add Portuguese (Brazil) dog data faker module
Users can now generate dog-related fake data in Brazilian Portuguese. A new \Faker.Dog.PtBr\ module has been added, providing functions to generate random dog names, breeds, and characteristics localized for the pt\_BR locale.
lib/faker/dog · high confidence
Added English Superhero name generation
Users can now generate English superhero names using the new Faker.Superhero.En module, which provides functions to create names by combining random prefixes (e.g., "The", "Captain"), descriptors (e.g., "Beyonder", "Azrael"), and suffixes (e.g., "the Hunter", "Claw").
lib/faker/superhero · high confidence
Added English and Armenian industry data generators
Users can now generate industry-related data in English and Armenian. The new \Faker.Industry.En\ module provides functions to generate industry names, super sectors, sectors, and sub-sectors in English, while \Faker.Industry.Hy\ provides similar functionality for Armenian, including industry names and broader sector classifications.
lib/faker/industry · high confidence
Added English and Brazilian Portuguese team name generation
Users can now generate team names in English and Brazilian Portuguese using the new Faker.Team.En and Faker.Team.PtBr modules. These modules provide functions to create team names by combining a US state (for English) or a creature name with a state (for Portuguese), supporting localized data generation for applications requiring multilingual team identifiers.
lib/faker/team · high confidence
Added English, French, Brazilian Portuguese, and European Portuguese AWS region generators
Users can now generate AWS region names and codes localized to English, French, Brazilian Portuguese, and European Portuguese. This change introduces four new modules (Faker.Aws.En, Faker.Aws.Fr, Faker.Aws.PtBr, and Faker.Aws.PtPt) that provide region-specific data, such as 'US East (Ohio)' in English or 'USA Est (Ohio)' in French, allowing for more realistic localized test data generation.
lib/faker/aws · high confidence
Added IBAN generation capability
Users can now generate valid International Bank Account Numbers (IBANs) using the new \Faker.Code.Iban\ module. This addition provides functions to create random IBANs for any supported country or specific country codes, ensuring the generated numbers pass standard checksum and format validators. The implementation includes specifications for numerous countries and allows for optional prefix components to be included in the generated checksum.
lib/faker/code · high confidence
Added Pokemon name generators for German, English, and Italian locales
New Faker modules have been introduced for generating Pokemon names in German (Faker.Pokemon.De), English (Faker.Pokemon.En), and Italian (Faker.Pokemon.It). These modules provide a \name/0\ function that returns a random Pokemon name from a curated list specific to each language, allowing users to generate localized Pokemon data in their tests.
lib/faker/pokemon · high confidence
Added airport data generation for English and Brazilian Portuguese
Users can now generate random airport names in English and Brazilian Portuguese using the new \Faker.Airports.En\ and \Faker.Airports.PtBr\ modules. The English module provides a broad list of international airport names, while the Portuguese module specifically covers Brazilian airports, including major international hubs and regional fields with their local names and IATA/ICAO codes.
lib/faker/airports · high confidence
Added color name generators for German, English, Spanish, French, Armenian, Italian, and Brazilian Portuguese
New locale-specific modules have been added to the color faker, allowing users to generate color names in German (Faker.Color.De), English (Faker.Color.En), Spanish (Faker.Color.Es), French (Faker.Color.Fr), Armenian (Faker.Color.Hy), Italian (Faker.Color.It), and Brazilian Portuguese (Faker.Color.PtBr). These modules provide functions to return random standard color names, with German and English also offering fancy color name variants.
lib/faker/color · high confidence
Added commerce data generation for English, Armenian, and Brazilian Portuguese locales
New locale-specific modules have been introduced for the commerce faker: English (lib/faker/commerce/en.ex), Armenian (lib/faker/commerce/hy.ex), and Brazilian Portuguese (lib/faker/commerce/pt\_br.ex). These modules provide functions to generate random product names, departments, colors, and product attributes (adjectives, materials) tailored to each language. The Brazilian Portuguese implementation includes specific logic to handle gendered color suffixes, while the Armenian module reuses the existing color library. Users can now access localized commerce data via Faker.Commerce.En, Faker.Commerce.Hy, and Faker.Commerce.PtBr.
lib/faker/commerce · high confidence
Added fruit data generators for English and Brazilian Portuguese
New locale-specific modules have been added to the fruit faker: \Faker.Fruit.En\ provides English fruit names (e.g., Apple, Kiwi, Watermelon), and \Faker.Fruit.PtBr\ provides Brazilian Portuguese fruit names (e.g., Abacaxi, Açaí, Jabuticaba). Users can now call \Faker.Fruit.En.fruit()\ or \Faker.Fruit.PtBr.fruit()\ to generate localized fruit data.
lib/faker/fruit · high confidence
Added phone number generators for UK, US, Armenia, Brazil, and Portugal
New locale-specific phone number generators have been added to the Faker library, allowing users to generate realistic phone numbers for the United Kingdom (Faker.Phone.EnGb), the United States (Faker.Phone.EnUs), Armenia (Faker.Phone.Hy), Brazil (Faker.Phone.PtBr), and Portugal (Faker.Phone.PtPt). Each module implements region-specific formatting rules, such as NANP compliance for the US, UK geographic and mobile prefix structures, and Brazilian regional area codes, providing dedicated methods for landline, mobile, and general number generation.
lib/faker/phone · high confidence
Added stock ticker generation for Reuters format
The library now includes a new \Faker.Finance.Stock\ module that generates stock ticker symbols in the Reuters format. Users can call \Faker.Finance.Stock.ticker/0\ to get a random ticker from either the Nikkei 225 or Hong Kong Stock Exchange, or use \Faker.Finance.Stock.ticker/2\ to specify the format and exchange explicitly.
lib/faker/finance · high confidence
Initial project scaffolding and configuration
The repository has been initialized with essential configuration files, including \.credo.exs\ for code linting, \.formatter.exs\ for Elixir code formatting, \.tool-versions\ specifying Erlang 29.0.6, Elixir 1.20.4, and Node.js 24.21.0, and \renovate.json\ for automated dependency updates. Release automation is configured via \.releaserc.json\ using semantic-release, and the project includes standard documentation files like \README.md\, \CHANGELOG.md\, \USAGE.md\, \CONTRIBUTING.md\, and \LICENSE\.
(repo-wide) · high confidence
New Faker modules for addresses, apps, avatars, beer, cannabis, and more
This release adds a large number of new data generation modules to the library, including Faker.Address (with geohash support), Faker.Airports, Faker.App (with SemVer generation), Faker.Avatar (using robohash.org), Faker.Beer, Faker.Bitcoin (deprecated in favor of Blockchain), Faker.Cannabis, Faker.Cat, Faker.Code (ISBN/ISSN/IBAN), Faker.Color, Faker.Commerce, Faker.Company, Faker.Currency, Faker.Date, Faker.DateTime, Faker.File, Faker.Food, Faker.Industry, and others. These modules provide localized and sampler-based fake data for testing and development purposes.
lib/faker · high confidence
New Faker.Blockchain modules for Bitcoin and Ethereum
Added new modules Faker.Blockchain.Bitcoin and Faker.Blockchain.Ethereum to generate random blockchain addresses and signatures. Faker.Blockchain.Bitcoin provides address generation for both mainnet and testnet networks, while Faker.Blockchain.Ethereum offers functions to generate Ethereum addresses and signatures. These modules replace the deprecated Faker.Bitcoin module, which has been deprecated in favor of the new Faker.Blockchain.Bitcoin module.
lib/faker/blockchain · high confidence
New Faker.Internet modules for HTTP status codes and user agents
The library now includes dedicated modules for generating HTTP status codes (Faker.Internet.StatusCode) and user agent strings (Faker.Internet.UserAgent). Users can generate specific status codes by category (information, success, redirect, client error, server error) and realistic user agent strings for various devices including bots, desktops, mobile phones, tablets, e-readers, game consoles, and set-top boxes.
lib/faker/internet · high confidence
New Food data generation for English, Armenian, and Brazilian Portuguese
Added the \Faker.Food\ module with locale-specific implementations for English (\en\), Armenian (\hy\), and Brazilian Portuguese (\pt\_br\). Users can now generate randomized food-related data, including dishes, ingredients, and detailed descriptions, by calling functions such as \Faker.Food.En.dish/0\ or \Faker.Food.PtBr.ingredient/0\.
lib/faker/food · high confidence
New Shakespeare quote generators for English and Russian
Added \Faker.Lorem.Shakespeare\ module with functions to generate random quotes from Shakespeare's plays (Hamlet, As You Like It, King Richard III, Romeo and Juliet). The implementation includes localized data providers for English (\Faker.Lorem.Shakespeare.En\) and Russian (\Faker.Lorem.Shakespeare.Ru\), allowing users to retrieve quotes in their preferred language.
lib/faker/lorem · high confidence
New beer data generation capabilities in English
Users can now generate realistic beer-related data using the new \Faker.Beer.En\ module. This addition introduces three new functions: \brand/0\ for generating beer brand names (e.g., "Heineken", "Guinness"), \name/0\ for generating specific beer names (e.g., "Duvel", "Pliny The Elder"), and \hop/0\ for generating hop variety names (e.g., "Citra", "Cascade").
lib/faker/beer · high confidence
New localized address generators for English, Spanish, Armenian, Italian, Portuguese (Brazil), and Russian
Added new Faker.Address modules for six locales: English (En), Spanish (Es), Armenian (Hy), Italian (It), Brazilian Portuguese (PtBr), and Russian (Ru). These modules provide functions to generate locale-specific building numbers, city names, city prefixes/suffixes, and country names, enabling users to generate realistic address data in these languages.
lib/faker/address · high confidence
New localized person name generators for multiple languages
Added new modules for generating person names in English, Spanish, French, Armenian, Italian, and Brazilian Portuguese. These modules provide functions to generate full names, first names, last names, prefixes, and suffixes specific to each locale, allowing users to generate realistic-looking names in these languages.
lib/faker/person · high confidence
Behavioural changes
Refactored Faker application startup and internal architecture
The main Faker module has been refactored to remove the legacy Application.Behaviour implementation in favor of explicit start/0 and start/1 functions that initialize the application and set the locale. This change also introduces internal helper functions for string formatting and locale management, and updates the localization macro to support fallback logic, improving how the library handles different language locales.
lib · high confidence
Test coverage
Comprehensive test suite for Faker modules
Added a complete set of ExUnit tests for the Faker library, covering modules such as Address, App, Avatar, AWS, Beer, Blockchain, Cannabis, Cat, Code (including IBAN and ISBN/ISSN validation), Color, Commerce, Company, Currency, Date, DateTime, Dog, File, Finance, Food, Fruit, Gov (US and Italy), Industry, Internet (including User-Agent and Status Code), Lorem, Markdown, NATO, Person, Phone (US, UK, Portuguese), Pizza, Pokemon, Star Wars, String, Superhero, Team, Util, UUID, and Vehicle. The tests verify generated data formats, lengths, checksums, and locale-specific variations.
test · high confidence
Dependencies
Update Elixir dependencies and release automation tooling
The project's dependency set has been updated to align with the latest versions of its tooling ecosystem. In the Elixir environment (mix.exs/mix.lock), Credo is upgraded to 1.7.19, Dialyxir to 1.4.8, and ExDoc to 0.40.4, while the minimum supported Elixir version is set to 1.6. For JavaScript/Node.js (package.json/package-lock.json), the semantic-release monorepo and related plugins (changelog, commit-analyzer, exec, git, github, release-notes-generator) have been updated to their latest major/minor versions (e.g., semantic-release 25.0.9, @semantic-release/github 12.0.10), and conventional-changelog-conventionalcommits is set to 10.4.0. These changes ensure compatibility with current release automation workflows and static analysis tools.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 63 → 71 (+7.9)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (-0.1)
- Architecture 98 → 99 (+0.7)
- Maturity 52 → 52 (+0.0)
- Readiness 73 → 90 (+16.7)
- Security 59 → 80 (+20.8)
Resolved (22)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium CVE: [GHSA redacted] (package-lock.json)
- Medium vulnerability: [GHSA redacted] (package-lock.json)
- No exposed public API
- Off-boarding risk: anonymized user #1
- …and 2 more
New (21)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (403 lines × 2) (lib/faker/company/en.ex)
- Duplicated block (57 lines × 2) (lib/faker/phone/hy.ex)
- Duplicated block (7 lines × 5) (lib/faker/company/hy.ex)
- Duplicated block (8 lines × 2) (lib/faker/commerce/en.ex)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Off-boarding risk: anonymized user #1
- PR-triggered workflow without a permissions block
- …and 1 more
Changes since last survey
- 17 commits — 17 feature/other, 0 fixes
By area
- (root) — 13 commits
- .github/workflows — 4 commits
Notable commits
- change: chore(deps): lock file maintenance (#698)
- change: chore(deps): lock file maintenance (#701)
- change: chore(deps): lock file maintenance (#705)
- change: chore(deps): update dependency @semantic-release/github to v12.0.10 (#717)
- change: chore(deps): update dependency conventional-changelog-conventionalcommits to v10.3.0 (#696)
- change: chore(deps): update dependency conventional-changelog-conventionalcommits to v10.4.0 (#699)
- change: chore(deps): update dependency dialyxir to v1.4.8 (#708)
- change: chore(deps): update dependency elixir to v1.20.4 (#704)
- change: chore(deps): update dependency erlang to v29.0.6 (#706)
- change: chore(deps): update dependency ex_doc to v0.40.4 (#707)
- change: chore(deps): update dependency semantic-release to v25.0.9 (#695)
- change: chore(deps): update github/codeql-action action to v4.37.7 (#697)
- change: chore(deps): update github/codeql-action action to v4.37.8 (#700)
- change: chore(deps): update github/codeql-action action to v4.37.9 (#702)
- change: chore(deps): update github/codeql-action action to v4.38.0 (#710)
- change: chore(deps): update node.js to v24.20.0 (#703)
- change: chore(deps): update node.js to v24.21.0 (#709)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
elixirs/faker was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b4d588932ee17464bc6c7015a9dd30f674106e3f — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.