A few days ago, I accepted a new challenge of creating a simple command line barcode reader using Rust and Dynamsoft Barcode Reader SDK. Rust is a system programming language similar to C++. The learning process did not go through smoothly as I expected. It is not as easy as learning other high-level programming languages such as Java and Python. In this article, I share my experience of learning and using Rust.
The article is not about how to create Java native methods invoking C/C++ APIs. It aims to help developers to build a jar package containing JNI shared library, made with Dynamsoft Barcode Reader, for Windows, Linux, and macOS from scratch. I will demonstrate how to create JNI shared libraries with CMake, as well as how to package class files and shared libraries into jar files with Eclipse and Maven.
Previously, I demonstrated how to use OpenCV and Dynamsoft Barcode SDK to build a Python barcode reader. There’s one problem that when barcode decoding takes a long time, the webcam video didn’t play smoothly. I also tried multithread but failed to tackle the issue either due to the Python GIL(Global Interpreter Lock). Now I’m inspired by multiprocessing which is the recommended way to break through the bottleneck.
The reason WebAssembly appealing to me, besides the performance, is that I can run WebAssembly either on client-side or server-side. In this post, I will share how to build WebAssembly file and run it with Node.js.
WebAssembly (Wasm) is a revolutionary technology for Web development. It aims to execute at native speed in web browsers. With WebAssembly, it is convenient to port C/C++ code for web client and server applications. Dynamsoft Barcode Reader 6.2 is the most potent barcode SDK ever, and its WebAssembly edition is on the way. Let’s see what we can do with the preview edition of Dynamsoft WebAssembly barcode SDK.
.NET developers like Xamarin because they can develop Android and iOS apps in C#. However, if you are not afraid of learning new programming languages, you’d better choose Kotlin for Android and Swift for iOS. Unlike React Native, Flutter and Cordova, with Xamarin, you cannot create one codebase for both platforms in Visual Studio. Moreover, when you try to bind a complicated and obfuscated Android library, you may be in big trouble. I just suffered from the pain of binding Dynamsoft Camera SDK for Android.
If you have a .jar or a .aar file for distribution, you can publish it to Maven central or jcenter. But the premise is your package has to be open source. If you want to distribute a commercial library, you’d better host a Maven repository yourself. Inspired by STEFFENWELLNER’s article, I have successfully set up a Maven repository on IIS. The post includes how to create an AAR project, how to configure IIS and URL, as well as how to create a testing project.