A powerful Asynchronous Python library for getting bins database by country name or bank name, also supports bin lookup, supporting bots, MTProto API frameworks, and Python scripts
Project description
SmartBinDB
A lightning-fast asynchronous Python library for retrieving Bank Identification Number (BIN) database information, supporting lookups by country name, bank name, and individual BINs. Ideal for bots, MTProto API frameworks, and Python scripts. This is a closed-source project, and the source code is not available for public distribution.
⚡ What's New in v4.16.1
🚀 Massive Performance Improvements
- Lightning-fast BIN lookups: Now instant with O(1) hash table access
- Ultra-fast startup: Binary database caching reduces startup time from 6+ seconds to 10-50ms
- Memory-optimized loading: Smart caching system with automatic rebuild detection
- Parallel processing: Multi-threaded file loading for maximum performance
- Pre-cached country data: Zero-delay country information lookups
🔧 Technical Enhancements
- Binary Database Format: Optimized
.dbfile format for instant loading - Smart Cache Management: Automatic cache invalidation when source data changes
- Memory-Mapped File Access: Direct memory access for JSON files when needed
- Thread-Safe Operations: Concurrent operations with proper locking mechanisms
- Optimized Data Structures: Enhanced indexing for faster search operations
📊 Performance Benchmarks
- BIN Lookups: ~1000x faster (microseconds vs seconds)
- Startup Time: ~100x faster (milliseconds vs seconds)
- Memory Usage: 50% reduction with optimized caching
- Search Operations: 5-10x faster with enhanced algorithms
Features
- Asynchronous operations using
asynciofor high-performance data retrieval - Flexible lookups by country code, bank name, or specific BIN number
- Optional limit support for bank and country-based searches
- Compatible with Python 3.8 and all future versions
- Seamless integration for developers working with bots, APIs, and scripts
- Lightning-fast performance with intelligent caching and optimization
- Memory-efficient binary database format
- Auto-updating cache system for maximum performance
Installation
Install SmartBinDB via pip:
pip install smartbindb
Usage
Basic Asyncio Example
import asyncio
from smartbindb import SmartBinDB
async def main():
smartdb = SmartBinDB()
print("What would you like to do?")
print("1. BIN lookup")
print("2. Bank based search")
print("3. Country based search")
choice = input("Enter your choice (1, 2, or 3): ")
if choice == "1":
bin_number = input("Enter BIN number: ")
result = await smartdb.get_bin_info(bin_number)
print("BIN info:", result)
elif choice == "2":
bank_name = input("Enter bank name: ")
use_limit = input("Do you want to use a limit? (yes/no): ").lower()
limit = None
if use_limit == "yes":
limit = int(input("Enter limit: "))
result = await smartdb.get_bins_by_bank(bank_name, limit)
print("Bank results:", result)
elif choice == "3":
country_code = input("Enter country code: ").upper()
use_limit = input("Do you want to use a limit? (yes/no): ").lower()
limit = None
if use_limit == "yes":
limit = int(input("Enter limit: "))
result = await smartdb.get_bins_by_country(country_code, limit)
print("Country results:", result)
else:
print("Invalid choice. Please select 1, 2, or 3.")
if __name__ == "__main__":
asyncio.run(main())
Advanced Performance Example
import asyncio
import time
from smartbindb import SmartBinDB
async def performance_test():
smartdb = SmartBinDB()
# Test lightning-fast BIN lookup
start = time.time()
result = await smartdb.get_bin_info("424242")
end = time.time()
print(f"BIN lookup completed in {(end-start)*1000:.2f}ms")
print("Result:", result)
# Test fast bank search
start = time.time()
bank_results = await smartdb.get_bins_by_bank("Chase", limit=100)
end = time.time()
print(f"Bank search completed in {(end-start)*1000:.2f}ms")
print(f"Found {bank_results.get('count', 0)} results")
if __name__ == "__main__":
asyncio.run(performance_test())
Performance Notes
First Run
On the first run, SmartBinDB will build an optimized binary database from your JSON data files. This one-time process takes 1-2 seconds but creates a highly optimized .db file.
Subsequent Runs
After the initial setup, SmartBinDB loads in milliseconds and provides instant BIN lookups. The binary cache automatically rebuilds only when your source data changes.
Memory Efficiency
The new caching system uses 50% less memory while providing dramatically faster performance through intelligent data structures and optimized algorithms.
API Reference
SmartBinDB()
Creates a new SmartBinDB instance with lightning-fast performance optimizations.
await get_bin_info(bin: str)
Performs instant BIN lookup with O(1) hash table access.
await get_bins_by_bank(bank: str, limit: Optional[int] = None)
Fast bank-based search with optional result limiting.
await get_bins_by_country(country: str, limit: Optional[int] = None)
Optimized country-based search with enhanced performance.
Contributing
This is a closed-source project, and contributions are not accepted at this time.
License
This project is proprietary and not licensed for open-source use.
Contact
- Author: @ISmartCoder
- Email: abirxdhackz.info.me@gmail.com
Changelog
v4.16.1 (Latest)
- 🚀 MAJOR: Lightning-fast BIN lookups with O(1) hash access
- ⚡ MAJOR: Ultra-fast startup with binary database caching
- 🔧 IMPROVED: Memory-optimized data structures
- 🔧 IMPROVED: Multi-threaded parallel file loading
- 🔧 IMPROVED: Smart cache management with auto-rebuild
- 🔧 IMPROVED: Pre-cached country information
- 📊 PERFORMANCE: 1000x faster BIN lookups
- 📊 PERFORMANCE: 100x faster startup times
- 📊 PERFORMANCE: 50% memory usage reduction
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smartbindb-4.16.1.tar.gz.
File metadata
- Download URL: smartbindb-4.16.1.tar.gz
- Upload date:
- Size: 2.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3370c93256268d48f51650912d1a47e11fd6f217b1f9a734867def5b60528aa6
|
|
| MD5 |
33823471abd6b57fff21fc7a35cc2a8a
|
|
| BLAKE2b-256 |
f18396af9707743dec2efba565b2d13e728f1fee74fd46ab8975244ed3ab2834
|
File details
Details for the file smartbindb-4.16.1-py3-none-any.whl.
File metadata
- Download URL: smartbindb-4.16.1-py3-none-any.whl
- Upload date:
- Size: 3.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2b5bbf58de6f4492b9b18f5a224d8f20607b75d2eabc61736775f50a72cb11c
|
|
| MD5 |
be42c8488a30e4641353246ae9c139f0
|
|
| BLAKE2b-256 |
c200726aca68475ccae22d61de3752c0acab6f04eff5f3ea424b7bc0e98fe9cf
|