{"repo":"seuros/noiseless","free":true,"listed":false,"github":"https://github.com/seuros/noiseless","clone":"git clone https://github.com/seuros/noiseless.git","description":"Async-first search abstraction for Ruby/Rails with multi-backend support (OpenSearch, Elasticsearch, Typesense, PostgreSQL)","language":"Ruby","stars":47,"topics":["elasticsearch","full-text-search","opensearch","pgvector","postgresql","rails","ruby","search","typesense","activerecord"],"license":"BSD-3-Clause","category":"databases-storage","readme_excerpt":"Noiseless Async-first search abstraction for Rails with multi-backend support (OpenSearch, Elasticsearch, Typesense, PostgreSQL). Features - Chainable DSL — fluent query builder with runtime validation - Multi-backend — OpenSearch, Elasticsearch, Typesense, PostgreSQL adapters - Async-first — built on Ruby 3.4+ fiber scheduler with non-blocking I/O - HTTP/2 connection pooling — persistent connections via Async::Pool - Rails integration — Railtie with log subscriber and controller runtime tracking - Lazy loading — adapters loaded on-demand, test files excluded from production Installation noiseless is a Rails gem. It requires Ruby = 3.4 and Rails = 8.1. Configuration Create config/noiseless.yml : Usage Defining a Search Executing Searches All .execute calls return Async::Task objects. Use Sync to wait for results, or use the sync convenience methods: Concurrent Searches For best performance, run independent searches concurrently within a single Async block rather than creating separate Sync blocks per search. Advanced Queries Rails Integration Testing Add to test/test helper.rb : With Noiseless::TestCase (automatic VCR cassettes) With manual VCR control Running Tests Locally bin/test expects all four local services from docker-compose.yml , including PostgreSQL on :5432 . Default ports match docker-compose.yml : PostgreSQL :5432 , Elasticsearch :9201 , OpenSearch :9202 , Typesense :8109 . Override via env vars: For a release smoke test that does not require the dummy app or lo","default_branch":null,"files":null,"tree":[],"storefront":"/r/seuros","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/seuros/noiseless/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}