{"id":17190694,"url":"https://github.com/nicknaso/conf-cd-rome-2018","last_synced_at":"2026-04-12T00:47:57.398Z","repository":{"id":74155258,"uuid":"120283715","full_name":"NickNaso/conf-cd-rome-2018","owner":"NickNaso","description":"Talk for the Codemotion Rome 2018","archived":false,"fork":false,"pushed_at":"2018-04-13T23:17:06.000Z","size":56071,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T05:54:25.999Z","etag":null,"topics":["addon","cpp","javascript","n-api","native-module","nodejs"],"latest_commit_sha":null,"homepage":"http://nacios.it","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NickNaso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-05T09:34:02.000Z","updated_at":"2020-04-06T06:25:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"a9e03d80-4e53-4a95-aa8d-31ee76a7f275","html_url":"https://github.com/NickNaso/conf-cd-rome-2018","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NickNaso/conf-cd-rome-2018","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickNaso%2Fconf-cd-rome-2018","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickNaso%2Fconf-cd-rome-2018/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickNaso%2Fconf-cd-rome-2018/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickNaso%2Fconf-cd-rome-2018/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NickNaso","download_url":"https://codeload.github.com/NickNaso/conf-cd-rome-2018/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickNaso%2Fconf-cd-rome-2018/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265710684,"owners_count":23815403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["addon","cpp","javascript","n-api","native-module","nodejs"],"created_at":"2024-10-15T01:23:37.238Z","updated_at":"2026-04-12T00:47:57.346Z","avatar_url":"https://github.com/NickNaso.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Node.js Native Add-ons from zero to hero\n\n\u003e Talk for Codemotion Rome 2018 \n[https://rome2018.codemotionworld.com/conference/](https://rome2018.codemotionworld.com/conference/)\n\n## Abstract\n\nThis talk is about creating Node.js interfaces for native libraries written in C \nor C++. It starts with various situations in which you need to build native addons\nand the common problems in doing that. I'll discuss the reference provided by the\nnew N-API (Node-API) that helps mantainers to support a wide variety of Node.js \nreleases without needing recompilation or abstraction layers. With all these tools\nand knowledge I'll show you how to build some addons from scratch and how to \nconvert existing addons using the new N-API. The last part is related to future \ndevelopments about addons.\n\n\n## [Slides](/slides)\n\n## Examples\n\n - [First simple example](/00-echo)\n\n - [Pass function](/01-pass-function)\n\n - [Async worker](/02-async-worker)\n \n - [Key value database](/03-vedis-napi)\n\n - [Emit events](/04-addon-event-emitter)\n\n - [Stream and Native addon-ons](/05-addon-stream)\n\n\n## C++ references\n\n- [Programming - Principles and Practice Using C++](http://www.stroustrup.com/programming.html)\n\n- [C++ Concurrency in Action](https://www.manning.com/books/c-plus-plus-concurrency-in-action)\n\n## JavaScript references\n\n- [Understanding ECMAScript 6](https://leanpub.com/understandinges6/read)\n\n- [Exploring ES6](http://exploringjs.com/es6/)\n\n- [Functional JavaScript](https://www.manning.com/books/functional-programming-in-javascript)\n\n## Node.js documentation and good references\n\n- [Node.js documentation API](https://nodejs.org/dist/latest/docs/api/)\n\n- [Node.js Design Pattern](https://www.packtpub.com/web-development/nodejs-design-patterns-second-edition)\n\n- [Node.js 8 the Right Way](https://pragprog.com/book/jwnode2/node-js-8-the-right-way)\n\n- [Node Cookbook - Third Edition](https://www.packtpub.com/web-development/node-cookbook-third-edition)\n\n\n### Node.js C / C ++ Addons\n\n#### [Documenttation of Node.js Native Addons](https://nodejs.org/dist/latest/docs/api/addons.html)\n\n### N-API \n\n#### [Documentation for N-API](https://nodejs.org/dist/latest/docs/api/n-api.html)\n\n### Node Addon API\n#### Header-only C++ wrapper classes for the ABI-stable Node.js API\n#### [Node.js API (N-API) Package](https://github.com/nodejs/node-addon-api/)\n\n### Web resources\n\n* **[How I ported bcrypt to new N-API](https://medium.com/the-node-js-collection/how-i-ported-bcrypt-to-new-n-api-d0b8c9fe6136)**\n* **[N-API the next API for Native Addons](https://youtu.be/-Oniup60Afs)**\n* **[N-API Next generation Node API for native modules](https://www.slideshare.net/michaeldawson3572846/n-apinode-summit2017final)**\n* **[Speed up Your Node.js App with Native Addons](https://medium.com/the-node-js-collection/speed-up-your-node-js-app-with-native-addons-5e76a06f4a40)**\n* **[Start with N-API](https://hackernoon.com/n-api-and-getting-started-with-writing-c-addons-for-node-js-cf061b3eae75)**\n* **[How to get a performance boost using Node.js native addons](https://medium.com/developers-writing/how-to-get-a-performance-boost-using-node-js-native-addons-fd3a24719c85)**\n\n### Nicola Del Gobbo\n\n\u003chttps://github.com/NickNaso/\u003e\n\n\u003chttps://www.npmjs.com/~nicknaso\u003e\n\n\u003chttps://twitter.com/NickNaso\u003e\n\n## Acknowledgements\n\nThank you to all people that encourage me every day.\n\n## License\n\nLicensed under [Apache license V2](./LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicknaso%2Fconf-cd-rome-2018","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicknaso%2Fconf-cd-rome-2018","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicknaso%2Fconf-cd-rome-2018/lists"}