libtor 47.13.0+0.4.7.x

Bundle and run Tor inside your own project
Documentation
# libtor

`libtor` is a Rust crate for bundling inside your project a fully-running Tor daemon.
It exposes a nicer interface to operate it compared to the bare-bones version, [libtor-sys](https://crates.io/crates/libtor-sys).
If you need further instructions on how to build or cross-compile the project, you should refer to the [`libtor-sys` README.md](https://github.com/MagicalBitcoin/libtor-sys).

`libtor` makes it easier for projects on multiple platforms to use Tor without depending on the user to configure complex proxy settings from other external software.

## Example

```
use libtor::{Tor, TorFlag, TorAddress, HiddenServiceVersion};

Tor::new()
    .flag(TorFlag::DataDirectory("/tmp/tor-rust".into()))
    .flag(TorFlag::SocksPort(19050))
    .flag(TorFlag::HiddenServiceDir("/tmp/tor-rust/hs-dir".into()))
    .flag(TorFlag::HiddenServiceVersion(HiddenServiceVersion::V3))
    .flag(TorFlag::HiddenServicePort(TorAddress::Port(8000), None.into()))
    .start()?;
```

Since Tor uses internally some static variables to keep its state, keep in mind that **you can't start more than one Tor instance per process**.

## Supported platforms

The currently supported platforms are:

* Linux (tested on Fedora 30 and Ubuntu Xenial)
* Android through the NDK
* MacOS
* iOS
* Windows cross-compiled from Linux with `mingw`

Coming Soon :tm::

* Windows (natively built)

## Dependencies

The following dependencies are needed:
- `openssl`
- `pkg-config`
- `file`
- the "usual" C build tools: a compiler, `automake`, `autoconf`