Overview
Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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