Making C and Python Talk to Each Other

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. datoviz

    ⚡ Datoviz: high-performance GPU rendering for scientific data visualization

    My visualization library [1] is written in C and exposes a visualization API in C. It is packaged as a Python wheel using auto-generated ctypes bindings, which includes the shared library (so, dylib, or dll) and a few dependencies. This setup works very well, with no need to compile against each Python version. I only need to build it for the supported platforms, which is handled automatically by GitHub Actions. The library is designed to minimize the number of C calls, making the ctypes overhead negligible in practice.

    [1] https://datoviz.org/

  2. Stream

    Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.

    Stream logo
  3. c-ray

    c-ray is a small, simple path tracer written in C

    I did a lot of this for my raytracer, c-ray [1]. Originally it was just a self-contained C program, but I got tired of writing buggy and limited asset import/export code, so eventually I put together a minimal public C API [2] that I then wrapped with CPython bindings [3] and some additional python code [4] to expose a more 'pythonic' API. It's all still a WIP, but it has already allowed me to write a Blender plugin [5], so now I can play around with my renderer directly in Blender, and test with more complex scenes others have made.

    Fun project, and it's really cool to see my little renderer in the interactive viewport in Blender, but I did learn that I don't particularly enjoy working with non-trivial amounts of Python code.

    [1] https://github.com/vkoskiv/c-ray

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • WebMonkeys: Massively parallel GPU programming on JavaScript, simple and clean

    7 projects | news.ycombinator.com | 4 May 2025
  • JSON for Classic C++

    5 projects | news.ycombinator.com | 13 Nov 2024
  • Day002 - Random posts under TIL

    3 projects | dev.to | 15 Oct 2024
  • The Failures Of API Design

    4 projects | dev.to | 4 Oct 2024
  • orjson: Fast, correct Python JSON lib supporting dataclasses, datetimes, NumPy

    2 projects | news.ycombinator.com | 20 Aug 2024

Did you know that C is
the 6th most popular programming language
based on number of references?