Client libraries / SDKs
Client libraries or SDKs are aimed to be wrappers around our API to drastically ease the integration process. They are aimed at providing easy to use methods to achieve common integration tasks, such as:
- Retrieving product results (search, browse, autocomplete, recommendations and quizzes)
- Dispatching behavioral events
- Updating catalog data and setting configurations (server side only)
Constructor offers client libraries in a number of languages, both for use in the browser and server-side.
To get a better understanding of the benefits of using Constructor's client libraries, please be sure to read the Client library usage justification guide.
Constructor aims to provide the following with all of our open source client library offerings:
- Strong unit and integration test coverage
- Minimal dependency usage
- Optimized bundle size
- Comprehensive and living documentation
- Lightweight footprint
- Proactive security audits through automated code and dependency tree analysis
AI Shopping Agent and Product Insights Agent support
Not every client library supports the AI Shopping Agent (ASA) and the Product Insights Agent (PIA):
| Library | ASA results | ASA events | PIA results | PIA events |
|---|---|---|---|---|
| JavaScript | agent module | tracker module | agent.pia module | tracker module |
| iOS / Swift | No | Version 4.7.0 and later, except trackAgentButtonClick | No | No |
| Node, Java, Python, .NET, Android / Kotlin | No | No | No | No |
The agent module receives ASA results through the browser EventSource interface. React Native does not include EventSource. If you use the JavaScript client library in React Native, you must add an EventSource polyfill.
To show the agents without building your own interface, use the ASA and PIA UI libraries.
Client side / browser
JavaScript (+TypeScript & React Native)
TypeScript support is available. The JavaScript client library does not contain the capability to render out results within the view layer (DOM) - please see our UI libraries.
GitHub: https://github.com/Constructor-io/constructorio-client-javascript
npm: https://www.npmjs.com/package/@constructor-io/constructorio-client-javascript
Documentation: https://constructor-io.github.io/constructorio-client-javascript/index.html
Usage in React Native context: https://github.com/Constructor-io/constructorio-client-javascript/wiki/Utilization-in-a-DOM-less-environment
Server side
Node (+TypeScript)
GitHub: https://github.com/Constructor-io/constructorio-node
npm: https://www.npmjs.com/package/@constructor-io/constructorio-node
Documentation: https://constructor-io.github.io/constructorio-node
Java
GitHub: https://github.com/Constructor-io/constructorio-java
JitPack: https://jitpack.io/#Constructor-io/constructorio-java
Documentation: https://constructor-io.github.io/constructorio-java
Python
GitHub: https://github.com/Constructor-io/constructorio-python
PyPI: https://pypi.org/project/constructor-io
Documentation: https://constructor-io.github.io/constructorio-python
.NET
GitHub: https://github.com/Constructor-io/constructorio-netcore
NuGet: https://www.nuget.org/packages/constructor.io
Documentation: https://constructor-io.github.io/constructorio-netcore
Mobile
iOS / Swift
GitHub: https://github.com/Constructor-io/constructorio-client-swift
Documentation: https://constructor-io.github.io/constructorio-client-swift
Android / Kotlin
GitHub: https://github.com/Constructor-io/constructorio-client-android
JitPack: https://jitpack.io/#Constructor-io/constructorio-client-android
Documentation: https://constructor-io.github.io/constructorio-client-android
Updated 11 days ago