# nlbn
**Fast EasyEDA/LCSC to KiCad converter written in Rust**
Convert EasyEDA and LCSC components to KiCad library formats with blazing fast parallel downloads.
## Features
- ✅ Convert symbols, footprints, and 3D models (STEP format)
- ✅ Batch processing with parallel downloads (up to 45x faster)
- ✅ Support for KiCad v5.x and v6.x/v7.x formats
- ✅ Standalone binary - no dependencies required
- ✅ Low memory usage (~20MB)
## Installation
**Note**: Currently tested on Windows platform only. Linux and macOS builds are provided but not yet tested.
### Option 1: Download Pre-built Binary
Download from [GitHub Releases](https://github.com/linkyourbin/nlbn/releases):
- Windows: `nlbn-windows-x86_64.exe.zip` ✓ Tested
- Linux: `nlbn-linux-x86_64.tar.gz` (untested)
- macOS: `nlbn-macos-x86_64.tar.gz` or `nlbn-macos-aarch64.tar.gz` (untested)
### Option 2: Install from crates.io
```bash
cargo install nlbn
```
### Option 3: Build from Source
```bash
git clone https://github.com/linkyourbin/nlbn.git
cd nlbn
cargo build --release
```
## Quick Start
### Single Component
```bash
# Convert everything (symbol + footprint + 3D model)
nlbn --full --lcsc-id C529356
# Convert only symbol
nlbn --symbol --lcsc-id C529356
```
### Batch Processing
```bash
# Create a file with LCSC IDs (one per line)
echo "C2040" > components.txt
echo "C529356" >> components.txt
# Batch convert with 8 parallel threads (fast!)
nlbn --full --batch components.txt --parallel 8
# Continue on errors
nlbn --full --batch components.txt --parallel 8 --continue-on-error
```
## Usage
```
nlbn [OPTIONS]
Options:
--lcsc-id <ID> LCSC component ID (e.g., C2040)
--batch <FILE> Batch mode: read IDs from file
--symbol Convert symbol only
--footprint Convert footprint only
--3d Convert 3D model only
--full Convert all (symbol + footprint + 3D)
-o, --output <PATH> Output directory [default: .]
--parallel <N> Parallel threads for batch mode [default: 4]
--continue-on-error Skip failed components in batch mode
--overwrite Overwrite existing components
--v5 Use KiCad v5 legacy format
--debug Enable debug logging
-h, --help Print help
```
## Performance
**Batch processing with parallel downloads:**
- 5 components: ~4 seconds (8 threads)
- 100 components: ~3-5 minutes (8 threads)
- Up to 45x faster than sequential processing
## Output Structure
```
output/
├── nlbn.kicad_sym # Symbol library
├── nlbn.pretty/ # Footprint library
│ └── Component_Name.kicad_mod
└── nlbn.3dshapes/ # 3D model library
└── Component_Name.step
```
## Examples
```bash
# High-performance batch conversion
nlbn --full --batch components.txt --parallel 16 -o ./library
# Resume interrupted batch (skip existing)
nlbn --full --batch components.txt --continue-on-error
# KiCad v5 format
nlbn --full --lcsc-id C529356 --v5
```
## License
MIT License - See LICENSE file for details
## Credits
Based on [easyeda2kicad](https://github.com/uPesy/easyeda2kicad.py) Python implementation.