nodejs / abi-stable-node

Repository used by the Node-API team to manage work related to Node-API and node-addon-api
239 stars 47 forks source link

Talk submission for OpenJS World? #422

Closed mhdawson closed 3 years ago

mhdawson commented 3 years ago

OpenJS World 2021 takes place virtually starting June 9, 2021 as a combination of live keynotes and prerecorded talks.

The CFP closes February 15, 2021 extended to February 22, 2021. CFP Notifications March 24, 2021.

mhdawson commented 3 years ago

Maybe something based on

https://nodejs.medium.com/building-modern-native-add-ons-for-node-js-in-2020-cd3992c68e0

Starting ideas:

Title: Building Modern Native Add-ons for Node.js in 2021

Abstract: Jim is going to take a first pass...

jschlight commented 3 years ago

Preliminary Abstract

Quickly get up to speed on all the latest improvements to Node-API, the Node.js core technology that enables the creation of Node.js native add-ons based on C and C++ APIs. Since it’s introduction in 2017, Node-API (previously N-API), and the supporting ecosystem, has continued to evolve and improve to meet the needs of the larger Node.js community.

This fast-paced talk, presented by members of the Node-API team and of interest to both novice and experienced native add-on developers, covers a number of recent improvements to Node-API and supporting tools.

Support for multi-threaded and asynchronous programming in Node-API has been significantly improved. New abstractions such as thread-safe functions and the Addon<T> class greatly simplify the effort needed to implement computationally complex add-ons and add-ons that rely on native OS-level asynchronous APIs. Additional helper methods have been added that support date objects, BigInts, retrieving property names from objects, and detaching ArrayBuffers.

The universe of tools used to build and deploy native add-ons also continues to evolve and improve. Native add-on developers now have the option of building with CMake.js in addition to node-gyp. Prebuilding binaries for a variety of platforms and architectures significantly improves the experience of native add-on users. Deployment options permit serving these binaries from GitHub releases or even bundling the binaries as part of the npm module itself.

Please join us for what promises to be an exciting and informative presentation.

See Michael's edit below.

gabrielschulhof commented 3 years ago

Sounds great! Nit: There's one superfluous "permit"

mhdawson commented 3 years ago

My suggested edit:

Quickly get up to speed on developing modern Node.js native addons. This fast-paced talk, presented by members of the Node-API team and of interest to both novice and experienced native add-on developers, covers a number of recent improvements to Node-API and supporting tools.

Support for multi-threaded and asynchronous programming in Node-API has been significantly improved. New abstractions such as thread-safe functions and the Addon class greatly simplify the effort needed to implement computationally complex add-ons and add-ons that rely on native OS-level asynchronous APIs. Additional helper methods have been added that support date objects, BigInts, retrieving property names from objects, and detaching ArrayBuffers.

The universe of tools used to build and deploy native add-ons also continues to evolve and improve. Native add-on developers now have the option of building with CMake.js in addition to node-gyp. Prebuilding binaries for a variety of platforms and architectures significantly improves the experience of native add-on users. Deployment options permit serving these binaries from GitHub releases or even bundling the binaries as part of the npm module itself.

Please join us for what promises to be an exciting and informative presentation.

jschlight commented 3 years ago

I'm adding this preliminary outline for discussion by the N-APi Team.

Preliminary Outline

jschlight commented 3 years ago

The deadline for the submission has been extended to February 22, 2021. I have the submission in process waiting for @KevinEady's info.

As it turns out, the abstract is limited to 900 characters. So I've whittled down Michael's edit even further.

Abstract as currently submitted

Quickly get up to speed developing modern Node.js native addons. This fast-paced talk, presented by members of the Node-API team for all native add-on developers, covers recent enhancements to Node-API.

Support for multi-threaded and asynchronous programming in Node-API has been significantly improved. New abstractions such as thread-safe functions and the Addon class greatly simplify the effort needed to implement asynchronous add-ons. New helper methods support date objects, BigInts, retrieving object property names, and detaching ArrayBuffers.

Tools used to build and deploy native add-ons also continue to improve. Developers can build with CMake.js in addition to node-gyp. Prebuilding binaries significantly improves the experience of native add-on users. Deployment options permit serving these binaries from GitHub releases or bundling the binaries in the npm module itself.

jschlight commented 3 years ago

I just submitted our proposal complete with Kevin's information. Fingers crossed!

jschlight commented 3 years ago

Our session proposal was accepted by OpenJS World! I'm reopening this issue for discussion at the next Node-API Team meeting.

This is the link to the OpenJS World 2021 Virtual Speaker Guide:

https://openjsf.org/openjs-world-2021/openjs-world-2021-virtual-speaker-guide/

mhdawson commented 3 years ago

Yay!

mhdawson commented 3 years ago

Nick will sent out a link so we can start building the slide deck.

NickNaso commented 3 years ago

I share the link for the team: https://docs.google.com/presentation/d/122ZD8wXo4hTw-S3qVmukLkwkWJdGOEMK2bnOvk9KWVw/

KevinEady commented 3 years ago

Hi team @mhdawson @NickNaso @gabrielschulhof,

I would like some guidance about the focus of examples / code demonstrations in the slideshow. Should they be Node-API focused (eg. napi_create_async_work and napi_create_threadsafe_function) or node-addon-api focused (eg. AsyncWorker / AsyncProgressWorker and ThreadSafeFunction / TypedThreadSafeFunction)

Thanks, Kevin

mhdawson commented 3 years ago

Recording is submitted, closing