djinni VS Cython

Compare djinni vs Cython and see what are their differences.

InfluxDB - Purpose built for real-time analytics at any scale.
InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
djinni Cython
- 80
2,674 9,337
- 1.3%
0.6 9.8
- 16 minutes ago
C++ Python
- Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

djinni

Posts with mentions or reviews of djinni. We have used some of these posts to build our list of alternatives and similar projects.

We haven't tracked posts mentioning djinni yet.
Tracking mentions began in Dec 2020.

Cython

Posts with mentions or reviews of Cython. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-09-05.
  • I Use Nim Instead of Python for Data Processing
    6 projects | news.ycombinator.com | 5 Sep 2024
    >Not type safe

    That's the point. Look up what duck typing means in Python. Your program is meant to throw exceptions if you pass in data that doesn't look and act how it needs to. This means that in Python you don't need to do defensive programming. It's not like in C where you spend many hundreds of lines safe-guarding buffer lengths, memory allocation, return codes, static type sizes, and so on. That means that Python code can really just look directly like the algorithms they need to implement. That makes Python genuinely shorter and more readable than almost every other language out there.

    >Everything is global

    Not really. Python passes basic types as a copy. This is 'pass by value.' Objects are passed as a 'reference' to an object. So you can change that named reference without effecting the object or you can use it to manipulate the item it points to. Your own classes, lists, and dicts fall under this category. But I don't think ints, strings, or bytes do.

    >virtual environments hassle

    Yeah, you're not wrong. pyenv doesn't work that well and installs often break when you try set it up. It's well worth getting it properly installed though. I mostly just test from Python 3.6 (the version that introduced asyncio) and the scattering of major versions between it. I also test on all major operating systems using esxi by vmware.

    >very slow.

    This is mostly a meme. If you're doing CPU-bound work where each instruction counts then there are ways to tune Python performance. There's https://numba.pydata.org/ and https://cython.org/ 'easily tune readable Python code into plain C performance by adding static type declarations, also in Python syntax.' Python can use multiple processes, multiple interpreters, and soon 'real threads.' I should add that a lot of algorithms aren't parallel so they're not likely to benefit from such improvements. But Python byte code already is quite fast as it is.

    As for 'data processing' -- if the work-load is I/O bound its not going to matter if you use Python or C. It will be just as fast.

  • Ask HN: C/C++ developer wanting to learn efficient Python
    4 projects | news.ycombinator.com | 10 Apr 2024
  • Ask HN: Is there a way to use Python statically typed or with any type-checking?
    1 project | news.ycombinator.com | 6 Aug 2023
  • Cython 3.0
    1 project | news.ycombinator.com | 17 Jul 2023
  • How to make a c++ python extension?
    1 project | /r/learnpython | 12 Jun 2023
    The approach that I favour is to use Cython. The nice thing with this approach is that your code is still written as (almost) Python, but so long as you define all required types correctly it will automatically create the C extension for you. Early versions of Cython required using Cython specific typing (Python didn't have type hints when Cython was created), but it can now use Python's type hints.
  • Never again
    4 projects | /r/ProgrammerHumor | 21 May 2023
    and again, everything that was released after using an older version of cython.
  • Codon: Python Compiler
    9 projects | news.ycombinator.com | 8 May 2023
    Just for reference,

    * Nuitka[0] "is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11."

    * Pypy[1] "is a replacement for CPython" with builtin optimizations such as on the fly JIT compiles.

    * Cython[2] "is an optimising static compiler for both the Python programming language and the extended Cython programming language... makes writing C extensions for Python as easy as Python itself."

    * Numba[3] "is an open source JIT compiler that translates a subset of Python and NumPy code into fast machine code."

    * Pyston[4] "is a performance-optimizing JIT for Python, and is drop-in compatible with ... CPython 3.8.12"

    [0] https://github.com/Nuitka/Nuitka

    [1] https://www.pypy.org/

    [2] https://cython.org/

    [3] https://numba.pydata.org/

    [4] https://github.com/pyston/pyston

  • Slow Rust Compiler is a Feature, not a Bug.
    1 project | /r/rustjerk | 28 Apr 2023
  • Any faster Python alternatives?
    6 projects | /r/learnprogramming | 12 Apr 2023
    Profile and optimize the hotspots with cython (or whatever the cool kids are using these days... It's been a while.)
  • What exactly is 'JIT'?
    1 project | /r/ProgrammingLanguages | 10 Apr 2023
    JIT essentially means generating machine code for the language on the fly, either during loading of the interpreter (method JIT), or by profiling and optimizing hotspots (tracing JIT). The language itself can be statically or dynamically typed. You could also compile a dynamic language ahead of time, for example, cython.

What are some alternatives?

When comparing djinni and Cython you can also consider the following projects:

SWIG - SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.

libffi - A portable foreign-function interface library.

PyPy

JavaCPP - The missing bridge between Java and native C++

mypyc - Compile type annotated Python to fast C extensions

V8 - The official mirror of the V8 Git repository

Pyston - (No longer maintained) A faster and highly-compatible implementation of the Python programming language.

ChakraCore - ChakraCore is an open source Javascript engine with a C API. [Moved to: https://github.com/chakra-core/ChakraCore]

Pyjion

Wren - The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.

Stackless Python

InfluxDB - Purpose built for real-time analytics at any scale.
InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured

Did you konow that C++ is
the 6th most popular programming language
based on number of metions?