AI Adoption - Drive Business Value and Organizational Impact
Our career paths help you become job ready faster
Overview
Coursera Spring Sale
40% Off Coursera Plus Annual!
Grab it
Explore the intricacies of designing portable, multi-language libraries in this 50-minute conference talk from NDC Conferences. Delve into the development process of the free multi-language library segyio, examining crucial aspects such as stable API and ABI design, creating C-interface libraries for seamless integration with foreign languages like Python, and the philosophy behind effective library design. Learn about designing for composition and caller flexibility, the concept of plumbing and porcelain in library development, and bridging the gap between primitive and sophisticated systems. Gain valuable insights applicable to both library developers for embedded systems and users of higher-level libraries in desktop and scientific applications. The talk covers topics including user-facing considerations, memory allocation, error handling, primitive functions, binary stability, and separating I/O operations, providing a comprehensive overview of the challenges and best practices in multi-language library design.
Syllabus
Introduction
Outline
Cement
PiPI stats
Goals
Userfacing
ABI
API
Alignment
Primitive types
Example
Python vs C
Native Python
Python example
Problem with allocation
Memory
Memory Allocation
Python
Error codes
Invalid fields
Primitive functions
Function
Binary stability
Separating IO
Numerical formats
Questions
Taught by
NDC Conferences