Metadata-Version: 2.4
Name: bolivar
Version: 1.2.0
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Text Processing
Requires-Dist: pandas>=2.3.3 ; extra == 'pandas'
Requires-Dist: pandas-stubs>=2.3.3.251219 ; extra == 'pandas'
Provides-Extra: pandas
License-File: LICENSE
Summary: Fast PDF content extraction, written in Rust with Python bindings
Author-email: Ahmed Aloufi <936636+harubi@users.noreply.github.com>
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Repository, https://github.com/harubi/bolivar

# Bolivar

Fast PDF content extraction, written in Rust with Python bindings.

Bolivar is a from-scratch Rust port of [pdfminer.six](https://github.com/pdfminer/pdfminer.six) and [pdfplumber](https://github.com/jsvine/pdfplumber). It aims to be a drop-in replacement: swap `pdfminer`/`pdfplumber` for `bolivar` and keep your existing code working.

## Install

**Python:**

```bash
pip install bolivar
```

**Rust:**

```bash
cargo add bolivar-core
```

## Usage

### Python (pdfplumber-compatible)

```python
import pdfplumber

with pdfplumber.open("example.pdf") as pdf:
    for page in pdf.pages:
        print(page.extract_text())
```

### Rust

```rust
use bolivar_core::high_level::extract_text;

fn main() {
    let text = extract_text("example.pdf").unwrap();
    println!("{text}");
}
```

## License

[MIT](LICENSE)

