Learn a CTO’s perspective on Algolia vs. Elasticsearch.

Read More
Share on facebookShare on linkedinShare on twitterShare by email

Algolia cares deeply about open source. We maintain open source libraries such as our InstantSearch libraries for web and mobile to build rich user experiences, and engage with the OpenCollective community to help finance open source projects.

One of our teams is responsible for maintaining our lower-level open source libraries, also known as API clients, as well as several web framework integrations. Those API clients let our customers connect their applications to Algolia services (search, analytics, personalization). More precisely, it means we have to maintain the same API client in 9 different flavors: C#, Java, Kotlin, Scala, Go, PHP, Ruby, Python and JavaScript.

Hence, every time a new feature needs to be added, we have to synchronize on the best way to expose it on the public API of our clients. Same thing goes for bugs: once we detect a potential issue on one of our clients, we also check for its presence among all the clients. Finally, we rely on tests to ensure the functional and performance aspects.

Today, we are open-sourcing a new GitHub repository: algolia/algoliasearch-client-specs to keep track of all changes related to the public API of our API clients, their tests and their implementation details. This repository also contains the fully functional common test suite (also known as CTS) of our API clients. For anyone interested in implementing an API client for Algolia REST endpoints for an unsupported language — or just for fun — this repository is the best entry point, along with the official Algolia documentation for the REST endpoints.

Because this repository has a read-only view of the current expected state of our API client, questions and issues will need to be reported to our team directly via support@algolia.com, our Discourse community forum or Stack Overflow.

About the author

Loading amazing content…

Subscribe to the blog updates
Thank you for subscribing, stay tuned!