{"repo":"breakroom/snap","free":true,"listed":false,"github":"https://github.com/breakroom/snap","clone":"git clone https://github.com/breakroom/snap.git","description":"An Elasticsearch/OpenSearch client for Elixir","language":"Elixir","stars":86,"topics":["elasticsearch","elixir","search","elasticsearch-client","opensearch","opensearch-client"],"license":"MIT","category":"analytics","readme_excerpt":"Snap Snap is an Elasticsearch/OpenSearch client. It provides a flexible, performant API on top of your Elasticsearch cluster, supporting high level features like versioned index management, while also providing a convenient interface into low level operations. See the full API docs. Features - Versioned index management with zero-downtime hotswapping (compatible with elasticsearch ) - Streaming bulk operations - Connection pooling - Telemetry events - High level interface over the Multi Search API Installation The package can be installed by adding snap to your list of dependencies in mix.exs : Snap supports Elixir 1.16 or later. Usage Implement your own cluster module, similar to an Ecto.Repo : Configure it: Then wire it into your application supervisor: Now you can perform operations on your cluster: Testing See Snap.Test for details about to set up process isolated indexes to allow async testing against Snap. If you want to test your app that uses this library, but don't want to have integration tests with a Elasticsearch instance running in you local dev environment, you can mock the responses using a custom HTTP client adapter. Supposing you are using mox, you can do something like this: See the API documentation for more advanced features.","default_branch":null,"files":null,"tree":[],"storefront":"/r/breakroom","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/breakroom/snap/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."}