Typesense
Dart client library for accessing the HTTP API of Typesense search engine.
Note: This package is still under development. Some existing APIs might change or new APIs might be available in the future.
Installation
Add typesense as a dependency in your pubspec.yaml file.
dependencies:
  typesense: ^0.5.2
Usage
Read the documentation here: https://typesense.org/docs/api/
Tests are also a good place to know how the library works internally: test
Note: When using this library in a user-facing app, please be sure to use an API Key that only allows search operations instead of the master API key. See keys.dart for an example of how to generate a search only API key.
See Configuration class for a list of all client configuration options.
Examples
import 'dart:io';
import 'package:typesense/typesense.dart';
void main() async {
  // Replace with your configuration
  final host = InternetAddress.loopbackIPv4.address, protocol = Protocol.http;
  final config = Configuration(
    // Api key
    'xyz',
    nodes: {
      Node(
        protocol,
        host,
        port: 7108,
      ),
      Node.withUri(
        Uri(
          scheme: 'http',
          host: host,
          port: 8108,
        ),
      ),
      Node(
        protocol,
        host,
        port: 9108,
      ),
    },
    numRetries: 3, // A total of 4 tries (1 original try + 3 retries)
    connectionTimeout: const Duration(seconds: 2),
  );
  final client = Client(config);
  final searchParameters = {
    'q': 'stark',
    'query_by': 'company_name',
    'filter_by': 'num_employees:>100',
    'sort_by': 'num_employees:desc'
  };
  await client.collection('companies').documents.search(searchParameters);
}
The examples that walk you through on how to use the client: main.dart
Make sure to README beforehand.
Compatibility
| Typesense Server | typesense-dart | 
|---|---|
| >= v0.24.0 | >= v0.5.0 | 
| >= v0.22.0 | >= v0.3.0 | 
| >= v0.21.0 | >= v0.1.1 | 
Contributing
Visit CONTRIBUTING.md
Credits
This library is authored and maintained by our awesome community of contributors: