G-SDK Introduction
In addition to the integration method using BioStar2 SW API or BioStar2 Device SDK, G-SDK is recently released as a new integration option for device management, user management, and log management.
What is G-SDK?
G-SDK is one of the integration options for communicating with BioStar 2 devices. It is a lightweight, scalable, and cross-platform solution which will expedite your development.
How G-SDK works?
[Figure 1. G-SDK architecture]
G-SDK consists of Device Gateway in gRPC Server and gRPC Client Libraries.
Based on gRPC, it supports many programming languages such as Java, C#, Python, Node.js, Go, etc.
(gRPC (gRPC Remote Procedure Calls) is an open source remote procedure call (RPC) system initially developed at Google in 2015.)
Multi-language support
- Language-neutral IDL
- Native client libraries
Device Gateway that communicates with BioStar 2 device can be run on a server or cloud. Core modules use BioStar 2 protocols and written by GO language.
[Figure 2. Device Gateway Structure]
What is different from BioStar 2 Device SDK?
Existing BioStar 2 Device SDK provides C++ library with C#. G-SDK is released to provide flexible development for those who would like to meet the requirements below.
Let's take a look for an easy comparison between BioStar 2 Device SDK and G-SDK.
[Figure 3. BioStar 2 Device SDK vs G-SDK]
One of the biggest advantages of G-SDK compare to Device SDK is that it supports various languages. For the last years, Device SDK users have had difficulty using development language other than C++ or C# which is in the sample code.
Since BioStar 2 Device SDK can communicate with C++ library, you have to use C++ language or need to marshall all the APIs and structures in the library into other languages. Currently BioStar 2 Device SDK provides only C# marshalling sample.
This is a limitation of BioStar 2 Device SDK due to the structure.
[Figure 4. BioStar 2 Device SDK structure]
How G-SDK can support so many languages?
It is because G-SDK is based on gRPC. gRPC is an open RPC framework that supports many languages developed by Google.
Basically, the device gateway is the one that communicates with BioStar 2 device. Your client applications can connect to it using gRPC client libraries.
[Figure 5. G-SDK structure]
Additional information about G-SDK
1. Master Gateway
G-SDK can support up to 1000 device connections with a Device gateway.
Master Gateway helps you handle multiple Device gateways and it can be deployed on a cloud server or provide mobile direct accessibility too.
You can find additional information about the Master Gateway at the link below.
https://supremainc.github.io/g-sdk/overview/#master-gateway
[Figure 6. Device Gateway vs Master Gateway]
2. Advanced AC API
The basic APIs for managing devices as well as APIs that support advanced features such as Zone, Wiegand, RS485 features. (Core API, Master gateway API, Authentication API, Access control API, T&A APIs, Configuration API etc.)
Check the documentation for detailed API explanations. https://supremainc.github.io/g-sdk/api/
3. More language support samples
G-SDK provides C#, Java, Python, Go and Node samples.
(Furthermore, G-SDK is planning to support Android, iOS, Ruby samples.)
Summary of G-SDK
* Supported OS
Windows, x86/Arm Linux, Mac OS
* Maximum number of devices
Up to 1,000
* Supported Language
C++, C#, Java, Python, Go, Node.js, Kotlin, Swift
* Supported API
The basic APIs for managing devices as well as APIs that support advanced features such as Zone, Wiegand, RS485 features. (Core API, Master gateway API, Authentication API, Access control API, T&A APIs, Configuration API etc.)
Check the documentation for detailed API explanations. https://supremainc.github.io/g-sdk/api/
* Supported Device
All BioStar 2 devices
* Not Supported Device
All BioStar 1 Devices
(BioEntry Plus v2, BioEntry W v2, XPass v2, XPS2 v2, and BLN v2 are not supported.Gen 1 devices are not supported)
* Download
https://github.com/biostar-dev/g-sdk/(Expired)
https://github.com/supremainc/g-sdk/ (New Link)
* Manual
https://biostar-dev.github.io/g-sdk/ (Expired)
https://supremainc.github.io/g-sdk/ (New Link)