Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. filtrex

filtrex

MITElixirv0.4.0

An Elixir library for building and validating complex database query filters from client parameters, with Ecto integration.

Visit WebsiteGitHubGitHub
201 stars28 forks0 contributors

What is filtrex?

Filtrex is an Elixir library that simplifies building and validating complex database query filters from client parameters, such as URL query strings or stored JSON configurations. It integrates with Ecto to securely translate filter criteria into SQL queries, solving problems like parameter standardization, validation, and reusable smart filters.

Target Audience

Elixir developers building web applications (e.g., with Phoenix) that require robust, secure filtering of database results based on user-provided criteria.

Value Proposition

Developers choose Filtrex for its clean DSL, Ecto-native integration, and focus on security—it validates filters to prevent unintended data exposure while reducing boilerplate code for parameter handling.

Overview

A library for performing and validating complex filters from a client (e.g. smart filters)

Use Cases

Best For

  • Building admin dashboards with dynamic filtering capabilities
  • Implementing advanced search interfaces with multiple filter criteria
  • Creating reusable smart filters that users can save and apply later
  • Securing API endpoints by validating and sanitizing filter parameters
  • Filtering across associated database tables (e.g., users and profiles)
  • Handling complex filter logic with unions (any/all/none) and nesting

Not Ideal For

  • Applications using non-Elixir backends or ORMs other than Ecto
  • Projects requiring client-side-only filtering without server-side database queries
  • Teams that prefer zero-configuration solutions and find DSL-based setups overly verbose for simple use cases
  • Environments relying on database adapters besides PostgreSQL, as compatibility is untested per the README

Pros & Cons

Pros

Ecto Native Integration

Directly builds Ecto queries from validated filters, reducing boilerplate and ensuring type safety with Elixir's Ecto, as shown in the query building examples.

Secure Parameter Validation

Validates all incoming filter parameters against a configuration DSL to prevent unauthorized data exposure, addressing security concerns in web applications.

Reusable Filter Storage

Serializes filters into JSON-friendly maps for storage and later reuse, enabling smart filter features like saved searches, detailed in the storing filters section.

Advanced Logic Support

Supports complex filter unions (any, all, none) and nesting for intricate scenarios, making it suitable for admin dashboards and advanced search interfaces.

Cons

Limited Database Compatibility

The README admits it has only been tested with PostgreSQL, so using it with other databases like MySQL or SQLite may require additional work and could lead to unexpected issues.

Configuration Verbosity

Requires explicit DSL configuration for each filter type, which can become cumbersome in applications with many filterable fields or dynamic schemas, adding setup complexity.

Ecto Dependency Lock-in

Tightly coupled with Ecto, making it unsuitable for projects using raw SQL or alternative query builders, and adding overhead if Ecto is not already a core dependency.

Frequently Asked Questions

Quick Stats

Stars201
Forks28
Contributors0
Open Issues5
Last commit4 months ago
CreatedSince 2015

Tags

#parsing#query-builder#database#elixir#filter#url-parameters#parameter-validation#ecto#postgresql#web-application

Built With

E
Ecto
P
PostgreSQL
E
Elixir

Links & Resources

Website

Included in

Elixir13.1k
Auto-fetched 17 hours ago

Related Projects

quantumquantum

:watch: Cron-like job scheduler for Elixir

Stars2,412
Forks153
Last commit3 days ago
timextimex

A complete date/time library for Elixir projects.

Stars1,806
Forks406
Last commit1 year ago
calendarcalendar

date-time and time zone handling in Elixir

Stars469
Forks33
Last commit2 years ago
tzdatatzdata

tzdata for Elixir. Born from the Calendar library.

Stars322
Forks111
Last commit10 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub