Module Structure
This document describes the package organization and module responsibilities.
Package Overview
iso8583sim/
├── __init__.py # Package root (minimal)
├── core/ # Core message handling
├── llm/ # LLM-powered features
├── cli/ # Command-line interface
├── web/ # REST API (placeholder)
└── demo.py # Interactive demo helpers
Core Module (iso8583sim.core)
The core module handles ISO 8583 message parsing, building, and validation.
types.py
Central type definitions and field specifications.
Classes:
ISO8583Version- Protocol version enum (1987, 1993, 2003)FieldType- Field data type enum (NUMERIC, ALPHA, LLVAR, etc.)CardNetwork- Card network enum (VISA, MASTERCARD, etc.)MessageClass- Message class enum (AUTHORIZATION, FINANCIAL, etc.)MessageFunction- Message function enum (REQUEST, RESPONSE, etc.)FieldDefinition- Field metadata dataclassISO8583Message- Message data structureParseError/BuildError- Exception types
Data:
ISO8583_FIELDS- Standard ISO 8583 field definitions (128 fields)NETWORK_SPECIFIC_FIELDS- Network-specific field overridesVERSION_SPECIFIC_FIELDS- Version-specific field overrides
Functions:
get_field_definition()- Get field definition with network/version overridesdetect_network()- Identify card network from PAN
parser.py
Message parsing from raw string to ISO8583Message.
Classes:
ISO8583Parser- Main parser classEMVTag- EMV tag data structure
Key Methods:
parse(message, network=None)- Parse raw message string_parse_mti()- Extract Message Type Indicator_parse_bitmap()- Parse primary/secondary bitmaps_parse_fields()- Parse individual fields
builder.py
Message building from ISO8583Message to raw string.
Classes:
ISO8583Builder- Main builder class
Key Methods:
build(message)- Build raw message string_format_field_value()- Format field with padding_build_bitmap()- Generate bitmap from fields_build_field()- Build field with length prefix
validator.py
Message validation with network-specific rules.
Classes:
ISO8583Validator- Main validator class
Key Methods:
validate_message(message)- Full message validationvalidate_field(field_number, value, field_def)- Single field validation_validate_pan_luhn()- PAN Luhn checksum validation_validate_visa_specific()- VISA-specific rules_validate_mastercard_specific()- Mastercard-specific rules
emv.py
EMV/ICC chip card data handling.
Functions:
parse_emv_data(data)- Parse Field 55 TLV databuild_emv_data(tags)- Build Field 55 from tagsformat_emv_tag()- Format EMV tag for display
pool.py
Object pooling for high-throughput scenarios.
Classes:
MessagePool- Reusable message object pool
Key Methods:
acquire()- Get message from poolrelease(message)- Return message to pool
LLM Module (iso8583sim.llm)
AI-powered message explanation and generation.
base.py
Provider interface and exceptions.
Classes:
LLMProvider- Abstract base class for providersLLMResponse- Response with metadata dataclassLLMError- Base LLM exceptionProviderConfigError- Configuration errorProviderNotAvailableError- Missing provider/package
explainer.py
Message explanation using LLMs.
Classes:
MessageExplainer- Explain messages in plain English
Key Methods:
explain(message, verbose=False)- Explain a messageexplain_field(field_number, value)- Explain a single fieldexplain_response_code(code)- Explain response code
generator.py
Message generation from natural language.
Classes:
MessageGenerator- Generate messages from descriptions
Key Methods:
generate(description, validate=True)- Generate messagesuggest_fields(partial_message)- Suggest missing fields
providers/
LLM provider implementations.
Files:
__init__.py- Provider factory and auto-detectionanthropic.py- Anthropic (Claude) provideropenai.py- OpenAI (GPT) providergoogle.py- Google (Gemini) providerollama.py- Ollama (local) provider
Key Functions:
get_provider(name=None)- Get provider instancelist_available_providers()- List configured providerslist_installed_providers()- List installed providers
CLI Module (iso8583sim.cli)
Command-line interface using Click.
commands.py
CLI command implementations.
Commands:
parse- Parse a raw ISO 8583 messagebuild- Build a message from fieldsvalidate- Validate a messagegenerate- Generate sample messages
Demo Module (iso8583sim.demo)
Interactive helpers for notebooks and exploration.
Functions:
generate_auth_request()- Generate authorization requestgenerate_emv_auth()- Generate EMV authorizationpretty_print()- Format message for display
Cython Extensions
Optional compiled extensions for performance.
Files:
core/_parser_fast.pyx- Fast parsing functionscore/_bitmap.pyx- Fast bitmap operationscore/_validator_fast.pyx- Fast validation functions
Detection:
try:
from ._parser_fast import parse_mti_fast
_USE_CYTHON = True
except ImportError:
_USE_CYTHON = False
Import Patterns
Basic Usage
from iso8583sim.core.parser import ISO8583Parser
from iso8583sim.core.builder import ISO8583Builder
from iso8583sim.core.types import ISO8583Message
With Validation
from iso8583sim.core.validator import ISO8583Validator
from iso8583sim.core.types import CardNetwork
With LLM Features
from iso8583sim.llm import MessageExplainer, MessageGenerator
from iso8583sim.llm import get_provider, list_available_providers
Demo/Interactive
from iso8583sim.demo import generate_auth_request, pretty_print