Bringing a Mobile Cpp Codebase to the Web - Li Feng - CppCon 2022
https://github.com/CppCon/CppCon2022
Djinni is a tool for generating cross-language interface bindings between C++ and other languages. At Snap we managed to add full featured WebAssembly support to it. This means the same interface definitions for mobile platforms can now expose C++ code to Javascript and TypeScript code running in web browsers.
This work has helped bring Snap's large mobile C++ code base to the web with minimal change. It is the foundation of the recently released Snapchat for Desktop Web. And it is currently available on Github (https://github.com/snapchat/djinni).
In this talk you will see how Djinni enabled Snapchat to reuse our mobile C++ codebase in a browser app, how it works under the hood, and how you can use this open source tool in your own web projects.
---
Li Feng
Li has been writing software in C++ for over 20 years. He is currently a software engineer at Snap and the maintainer of Snap's open source Djinni project.
---
Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk
The Ride with WebAssembly : Taking Your C++ and Going Places - Nipun Jindal and Pranay Kumar - CppCon 2022
https://github.com/CppCon/CppCon2022
- You've heard of WebAssembly, and might have used it as well in web projects. This workshop explains tries to cover the good stuff that you would definitely need in the journey to expand your horizons on the web.
As C++ developers, we all wish to see a web application running core logic utilizing the same, almost cross-platform performant C++ source, No problem. As we know WebAssembly is an actual byte-code language one can compile your native code to instead. We'll discuss WebAssembly, and see how the magic of taking C++ code and turning it into executable code within the browser happens.
This workshop will explain well how WebAssembly works, how to use it, and how to build and use your WebAssembly modules from C++ code along with a demo. Important intermediary skills such as debugging, network communication, different types of file system access, and tweaks/caution needed would be provided in the workshop.
Additionally, possible dark places such as - threading issues, system calls tweaking, memory management would be covered as well. We would be taking a sample "Hello world", a sample (legacy vs modern) C++ project and would transform these for WebAssembly as part of the exercises along with some exercise at the end for regular, open-source C++ projects.
So grab C++ code, a modern browser, and let's get started!
Key Takeaways:
- You'll have the right footing you need to start building applications that feature WebAssembly.
- Have the vision to identify the web projects that may take advantage of C++ modules / libraries.
- Intermediate / Professional skills of WebAssembly
- Dark places / pitfalls of C++ WebAssembly development
---
Nipun Jindal
Nipun Jindal is a Senior Computer Scientist working at Adobe Systems. He has previously worked on multiple cross platform compatible desktop and mobile application like Flash, Adobe Photoshop, Adobe Capture, Adobe XD, developing his skill for cross platform development and eye for fast pace systems. His current set of responsibilities include moving the charter of fonts recommendation and fonts collaboration across different Adobe Creative Products. He is majorly interested in creating scalable systems with high performance. LinkedIn - https://www.linkedin.com/in/jindalnipun/
Pranay Kumar
Pranay Kumar is a Computer Scientist working in Adobe India with a passion for C++ development. He has been currently working towards utilizing the capabilities of emerging Adobe Fonts experience within the Adobe products. In the past several years with Adobe, he has contributed to the new licensing hybrid stack which is currently being used across the new version of Adobe Creative Cloud products such as Photoshop, Illustrator & InDesign, etc. His major interests lie in enabling the full potential of Adobe Fonts for consumers with modern C++ usage to ensure more secure, reliable & performant applications. Blog - https://medium.com/pranayaggarwal25 Website - http://pranayaggarwal.github.io/
__
Videos Streamed, Edited, and YouTube Channel Managed by Digital Medium: http://online.digital-medium.co.uk