# `Obscura`
[🔗](https://github.com/hfiguera/obscura/blob/v0.2.0/lib/obscura.ex#L1)

Obscura is a library-first privacy toolkit for Elixir.

Public APIs return explicit success or error tuples.

# `analyze`

```elixir
@spec analyze(
  String.t(),
  keyword()
) :: {:ok, [Obscura.Analyzer.Result.t()]} | {:error, term()}
```

Analyzes a string for supported PII entities.

# `analyze_many`

```elixir
@spec analyze_many(
  [String.t()],
  keyword()
) :: {:ok, [[Obscura.Analyzer.Result.t()]]} | {:error, term()}
```

Analyzes multiple strings while preserving input order.

# `anonymize`

```elixir
@spec anonymize(String.t(), [map() | struct()], keyword()) ::
  {:ok, Obscura.Anonymizer.Result.t()} | {:error, term()}
```

Applies anonymization operators to analyzer results or fixture-compatible spans.

# `redact`

```elixir
@spec redact(
  String.t(),
  keyword()
) :: {:ok, Obscura.Anonymizer.Result.t()} | {:error, term()}
```

Analyzes and anonymizes a string in one call.

# `rehydrate`

```elixir
@spec rehydrate(
  term(),
  keyword()
) :: {:ok, term()} | {:error, term()}
```

Rehydrates vault-backed pseudonym tokens in strings or supported structured data.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
