Uploaded image for project: 'Couchbase node.js Client Library'
  1. Couchbase node.js Client Library
  2. JSCBC-1169

Add prebuilt binaries for Electron runtime

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Major
    • None
    • None
    • None
    • None
    • 0

    Description

      It would be ideal if we could provide prebuilt binaries for the Electron runtime. This would help the development of the VS Code extension provided by Couchbase which relies on the Node.js SDK.

      The problem with Electron support is that since Electron uses Chromium they link against BoringSSL but do not expose the BoringSSL headers (see this Github issue). Since the C++ SDK (used by the Node.js SDK) relies on OpenSSL we run into problems (specifically on Windows) when building our binaries. So, we needed to determine the best path forward in order to "play nice" with Electron.

      The VS Code extension currently rebuilds the SDK, however it still has a dependency on OpenSSL (due to how the SDK is rebuilt) that can be a frustration to users.

      *IMPORTANT*
      The VS Code extension will need to pin to <= 4.2.4 of the Node.js SDK as the v4.2.5 release bumped cmake-js to be >= v7.0. The newer version of cmake-js includes significant changes to what files (headers, src, etc.) are downloaded when building and there will be significant hoops to jump through (specifically on Windows) in order to build the SDK against the Electron runtime.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              jared.casey Jared Casey
              jared.casey Jared Casey
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty