posted 2 years ago in CUBRID Apps&Tools category by Esen Sagynov
Hello our dear reader,
We have been receiving many requests from the community lately to develop a Node.js driver for CUBRID. Today I am very glad to announce that we have started the Node.js driver development and the first version will be available already this August.
We have done a lot of research on what approach we should take when developing a Node driver for CUBRID Database. We have identified two main streams for database driver development for Node.js:
- Dynamic database library linking
Below are the pros and cons we have identified for each of them.
Dynamic database library linking
- The driver will not be affected by internal CUBRID protocol change because the dynamic CCI library will handle it.
- Too many dependencies and a "heavier" project.
- It is completely dependent on both architecture (x32/x64) and OS.
- Accordingly, many distributions and packages must be made available.
- Unlikely to provide 100% asynchronous execution.
- Will be independent from any CUBRID API.
- 100% asynchronous execution.
- Verified and most preferable choice by users.
- Can refer to existing implementations experience/models.
- Might require updates if the communication protocol is changed in the future.
Unlike with other CUBRID APIs, this time we will follow an agile project management approach with short iterations of design, code and test. No more testing coverage added only after big chunks of code is implemented. Thus, we can receive community feedback and deliver quality product faster.
The project will be hosted at https://github.com/CUBRID/node-cubrid.
QA and testing
- Visual Studio, ReSharper/WebStorm, Firefox + Firebug
- Coverage goal:
- At least one test case per interface & function
- E2E scenarios
- 60%+ code coverage
- Performance test based on https://github.com/sidorares/node-mysql-bindings-benchmarks.
- Project unit & integration test framework(s):
- Tests will be performed on Windows and Linux.
We will have 5 milestones. Each milestone will deliver a complete working prototype:
- Milestone 1: Basic driver interfaces: connect, queries support + result set - 3rd week of August.
- Milestone 2: Technology preview: 80% functionality ready - 2nd week of September.
- Milestone 3: Beta release: > 95% functionality ready - 1st week of October.
- Milestone 4: Stable release: 100% functionality ready- end of October.
- Milestone 5: NPM Package and tutorials - beginning of November.
The main driver release will be followed by the node-db driver release.