Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Released: with Milvus 2.1 

Authors:  

Summary

...

Deliver C++ SDK toolkit with full functionality for Milvus 2.0. Provide both static lib and dynamic lib for users. 

Motivation

...

We've seen many users demands for C++ SDK, it is probably the most useful SDK which could be used in distributed systems.

Public Interfaces

...


Design Details

...

TODO lists

  1. API Design → Reference Java 1.1 SDK, Pymilvus SDK
  2. Initial version of the code, finish all the frameworks, including how the sdk communicate with milvus cluster, how we do unit test.
  3. Finish DDL, DML , Control  API implementation
  4. Unit Test 
  5. Usage examples
  6. API Document
  7. CI Test

...

For the supported platform, need to be tested with mainstream distributions(e.g. Ubuntu 18.04+, CentOS 7+) using google tests. Milvus cpp SDK 1.1 using cmake, and only build a shared library as output. In this new SDK for milvus 2, the user can choose which version to be built by setting cmake options. Quality gates such as clang-format, clang-tidy, cpplint are needed.


Code Style

A basic rule of code style:

  • Namespace should use lower_case
  • Class should use CamelCase
  • Class member should use lower_case_ (with a underscore append)
  • Enum member should use UPPER_CASE
  • Function should use CamelCase, and the private member Function use camelBack

Test Plan

...

  1. Unit test
    1. C++ SDK will implement a mock milvus for basic testing, need to be tested with mainstream distributions(e.g. Ubuntu 18.04+, CentOS 7+)
    2. Start a standalone milvus complicated test.
  2. CI test 
    1. Do we need to setup basic CI test for further improvement?
  3. Examples
    1. finish all the examples in user guide and make sure it works like https://milvus.io/docs/v2.0.0/example_code.md

Rejected Alternatives(optional)

...


References

Current state: Accepted

ISSUE: https://github.com/milvus-io/milvus/issues/7713

PRs: 

Keywords: C++ SDK

Released: with Milvus 2.1 

Authors:  @matrixji @ArkaprabhaChakraborty @yhmo