Expand description
§iso8583-core
Production-ready ISO 8583 message parsing and generation library.
§Features
- Zero Allocation: Static const tables, no runtime overhead
- SIMD Optimized: Accelerated bitmap operations on x86_64 and aarch64
- no_std Compatible: Works in embedded environments
- Type Safe: Compile-time field validation
- High Performance: Optimized for financial systems
§Quick Start
use iso8583_core::*;
// Build a message
let message = ISO8583Message::builder()
.mti(MessageType::AUTHORIZATION_REQUEST)
.field(Field::PrimaryAccountNumber, "4111111111111111")
.field(Field::ProcessingCode, "000000")
.field(Field::TransactionAmount, "000000010000")
.field(Field::SystemTraceAuditNumber, "123456")
.field(Field::LocalTransactionTime, "120000")
.field(Field::LocalTransactionDate, "0219")
.build()?;
// Generate bytes
let bytes = message.to_bytes();
// Parse bytes
let parsed = ISO8583Message::from_bytes(&bytes)?;§Architecture
This library uses several advanced techniques for production performance:
- Static Specification Tables: Field definitions stored in const arrays
- Zero-Copy Parsing: Borrows from input buffers where possible
- SIMD Bitmap Operations: Vectorized field presence checking
- Compile-Time Validation: Type system enforces correctness
§Feature Flags
std(default): Standard library supportalloc: Heap allocation (Vec, String)simd: SIMD-accelerated bitmap operationsserde: JSON serialization support
Re-exports§
pub use bitmap_simd as bitmap;allocpub use fields::IsoField;pub use spec::DataType;pub use spec::FieldDefinition;pub use spec::Iso1987;pub use spec::IsoSpec;pub use spec::LengthType;pub use bitmap::Bitmap;allocpub use error::ISO8583Error;stdpub use error::Result;stdpub use mti::MessageClass;stdpub use mti::MessageFunction;stdpub use mti::MessageOrigin;stdpub use mti::MessageType;stdpub use message::ISO8583Message;stdpub use message::MessageBuilder;stdpub use response_code::ResponseCategory;stdpub use response_code::ResponseCode;stdpub use processing_code::AccountType;stdpub use processing_code::ProcessingCode;stdpub use processing_code::TransactionType;stdpub use validation::Validator;stdpub use crate::field::Field;std
Modules§
- bitmap_
simd alloc - SIMD-Optimized Bitmap Operations
- encoding
std - Encoding and decoding utilities for ISO 8583 messages
- error
std - Error types for ISO 8583 message processing
- field
std - ISO 8583 Field Definitions
- fields
- Type-Safe Field Generation System
- message
std - ISO 8583 Message structure and operations
- mti
std - Message Type Indicator (MTI) definitions and parsing
- processing_
code std - ISO 8583 Processing Codes
- response_
code std - ISO 8583 Response Codes
- spec
- ISO 8583 Field Specifications - Zero-Allocation Static Tables
- utils
std - Utility functions for common ISO 8583 operations
- validation
std - Validation utilities for ISO 8583 messages and fields
Macros§
- define_
field - Macro to define a type-safe ISO 8583 field
- define_
numeric_ field - Macro to define a fixed-length numeric field with compile-time size checking