nlbn 1.0.0

Fast and reliable EasyEDA/LCSC to KiCad converter with batch processing support
Documentation
# 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.