~/talk

Rediscovering fire - on designing portable, multi-language libraries

Talkat NDC Oslo 2019 · 2019-06-17..06-21· [rust]
links:none on file
slides:none on file

segyio is a LGPL3 core library (C99) with C++11 and Python 2/3 frontends, available on Debian and PyPI (≈12,000 downloads last month), that prioritizes stable ABI and multi-language reuse. design choices: avoid library-side allocations by exposing a size-query then requiring caller-allocated buffers so Python/NumPy can drive I/O, use small primitive functions with explicit parameters and primitive int error codes (no enums in signatures), provide a separate conversion routine to handle many numeric formats, and read huge files with tiny reusable buffers (e.g. multi-terabyte reads using kilobytes of memory).

AI-written summary · about

  1. 0:00Introduction
  2. 2:06Outline
  3. 2:26Cement
  4. 3:24PiPI stats
  5. 3:54Goals
  6. 5:41Userfacing
  7. 7:45ABI
  8. 9:09API
  9. 10:08Alignment
  10. 11:53Primitive types
  11. 14:00Example
  12. 15:07Python vs C
  13. 16:35Native Python
  14. 18:51Python example
  15. 24:06Problem with allocation
  16. 26:14Memory
  17. 28:56Python
  18. 31:50Error codes
  19. 34:13Invalid fields
  20. 34:49Primitive functions
  21. 45:46Function
  22. 47:12Binary stability
  23. 47:56Separating IO
  24. 48:40Numerical formats
  25. 49:56Questions
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.