Skip to main content

Efficient Language Detector - C

license supported languages

What is a language detector?
It is a tool that identifies which language a text is written in. For example, detect("Hola") returns "es" for Spanish.


Efficient language detector, written in C, is the fastest high-accuracy natural language detector.
ELDC can be compiled into a library, a command line executable, or easily installed as a python package.

ELD is also available in PHP (v3), Javascript (v2), and pure Python (v1 outdated). ELD-C (or ELDC) is v3.

Making "the fastest" or most accurate language identification tool can be trivial using unlimited resources, but doing both things while being memory constrained, is what ELD-C has the edge on. It's 2x faster than Google's CLD2 (previously the fastest decent detector for the last 10 years), and 6x faster than Facebook's Fasttext. It's also more accurate, based on the benchmarks below, than Lingua (referred to as the most accurate), and 100x faster for good measure.

  1. ELDC Python package
  2. ELDC Library
  3. Command line executable
  4. Benchmarks
  5. Languages
  6. More info

ELDC Python package

By default, pip will install a pre-compiled binary package for your system. If you need to build from source, you will need a C compiler (GCC, Clang, or MSVC) and Python headers, then use command pip install --no-binary eldc eldc or pip install . to build from local files.

Installation

$ pip install eldc

How to use?

Full demo at examples/demo_eldc_package.py

import eldc

eldc.init()

# Optionally, we can make an isolated configuration instance
eldc_instance = eldc.instance()

# We can set a language filter, global setter
eldc.set_languages(["en", "es", "fr"])  # also accepts string "en, es, fr"
# returns a list of the set languages ['en', 'es', 'fr']
eldc.set_languages([])  # reset all
# Instance setter, works the same way
eldc_instance.set_languages(["en", "es", "fr"])

# ISO 639-2/T output, (default iso639-1)
# eldc.set_scheme("iso639-2t")  global setter
# eldc_instance.set_scheme("iso639-2t")  instance setter

# Simple detect, returns a string with language code, or "und" for undetermined
eldc.detect("Bonjour le monde")  # 'fr'
eldc_instance.detect('Bonjour')  # 'fr'
# Use detect_mt() for multi-threaded parallel Python threads

# for detect_details() we can choose up to how many scores we want
eldc.set_scores(2) # default 3, max 20. Global setter
eldc_instance.set_scores(2) # Instance setter

r = eldc.detect_details("Hola mundo")  # multi-threaded capable by default
print(r.language)  # (str)  'es'
print(r.scores)    # (dict) {'es': 0.80, 'pt': 0.57} Scores are between 0 and 1
print(r.reliable)  # (bool) True or False
r = eldc_instance.detect_details("Hola mundo")  # Instance example

# eldc.LANGUAGES and eldc.LANGUAGES_ISO2T return list of all available languages

ELDC Library

Compile a library for Linux .so, Windows .dll or Darwin (macOS) .dylib. To be used with your preferred programming language.
I included demo examples at examples/ folder for: Java, TypeScript/Node/Js, Go, Rust, .NET/C#, PHP, Ruby, and Python. (Not 100% validated yet)

Installation

Download repostory or clone.

git clone https://github.com/nitotm/eldc.git
cd eldc/src/eldc
  • Linux
gcc -O3 -shared -fPIC -DELD_BUILD_DLL -o libeldc.so  eldc_lib.c -lm
  • Windows MinGW-w64
gcc -O3 -shared -DELD_BUILD_DLL -o eldc.dll eldc_lib.c -lm -Wl,--out-implib,libeldc.a
  • macOS (Darwin)
gcc -O3 -shared -fPIC -DELD_BUILD_DLL -o libeldc.dylib eldc_lib.c -lm
  • Windows. Use Developer Command Prompt.
cl /O2 /LD /DELD_BUILD_DLL eldc_lib.c /Fe:eldc.dll

How to use?

Find complete demos at the root folder of this repository, for each programming language examples/: demo_eldc_lib.py, demo_eldc_lib.ts, demo_eldc_lib.go, etc.
Here is a simple demo in PHP, as it is quite readable.

$ffi = FFI::cdef('
    typedef struct { const char *language; float score; } EldcScoreItem;
    typedef struct {
        const char   *language;
        int           reliable;
        int           n_scores;
        EldcScoreItem scores[20];
    } EldcDetectResult;

    struct EldcConfig;
    typedef struct EldcConfig EldcConfig;

    void        eldc_init(void);
    void        eldc_close(void);
    const char *eldc_detect(const char *text);
    void        eldc_detect_details(const char *text, EldcDetectResult *result);
    const char *eldc_set_languages(const char *codes);
    void        eldc_set_scheme(const char *scheme);
    void        eldc_set_scores(int n);

    EldcConfig *eldc_config_create(void);
    void        eldc_config_free(EldcConfig *cfg);
    const char *eldc_detect_cfg(EldcConfig *cfg, const char *text);
    void        eldc_detect_details_cfg(EldcConfig *cfg, const char *text, EldcDetectResult *result);
    const char *eldc_set_languages_cfg(EldcConfig *cfg, const char *codes);
    void        eldc_set_scheme_cfg(EldcConfig *cfg, const char *scheme);
    void        eldc_set_scores_cfg(EldcConfig *cfg, int n);
', './libeldc.so');  // Windows: 'eldc.dll', macOS: './libeldc.dylib'

$ffi->eldc_init();

// Optionally, we can make an isolated configuration instance
$i_config = $ffi->eldc_config_create();

$ffi->eldc_detect("Bonjour le monde");        // "fr"
$ffi->eldc_detect_cfg($i_config, "Bonjour");  // "fr", same behavior

// detect_details() to retrieve full data
$r = $ffi->new("EldcDetectResult");
$ffi->eldc_detect_details("Bonjour le monde", FFI::addr($r));
$r->language;  // string: "fr"
$r->reliable;  // int: 1 (0 for false, 1 for true)
$r->n_scores;  // int: 3 (default, up to)
$r->scores[0]->language;  // string: "fr"
$r->scores[0]->score;  // float: 0.9016
// Isolated configuration version example, works the same way
$ffi->eldc_detect_details_cfg($i_config, "Bonjour", FFI::addr($r));

// Return up to X scores. Default 3, max 20. Global setter.
$ffi->eldc_set_scores(2);  
$r2 = $ffi->new("EldcDetectResult"); 
$ffi->eldc_detect_details("Bonjour le monde", FFI::addr($r2));
$r2->n_scores;  // int: 2
// Isolated instance setter
$ffi->eldc_set_scores_cfg($i_config, 2);

// Set a language subset, returns validated languages
$ffi->eldc_set_languages("en,fr,de");  // string: "en,fr,de" Global setter
$ffi->eldc_detect("Hola mundo, bonito dia");  // string: "fr"
$ffi->eldc_set_languages("");  // reset
$ffi->eldc_set_languages_cfg($i_config, "en,fr,es");  // instance setter

$ffi->eldc_set_scheme("iso639-2t");  // Default "iso639-1". Global setter
$ffi->eldc_set_scheme_cfg($i_config, "iso639-2t");  // instance setter
$ffi->eldc_detect("Hola mundo, bonito dia");  // string: "spa"

// Cleanup
$ffi->eldc_config_free($i_config);
$ffi->eldc_close();  // Unloads eldc resources, globally

Command line executable

There are 2 versions, standard eld.c and multi thread eld_mt.c. You might use this executable just to try it, but its input file processing is the fastest ELD-C implementation suitable for production and heavy workloads.

Installation

Download repostory or clone.

git clone https://github.com/nitotm/eldc.git
cd eldc/src/eldc
  • Linux or macOS
gcc -O3 -march=native -o eldc eld.c -lm
# Or multi thread executable
gcc -O3 -march=native -o eldc_mt eld_mt.c -lm -lpthread
  • Windows MinGW-w64
gcc -O3 -o eldc.exe eld.c -lm -static
# Or multi thread executable
gcc -O3 -o eldc_mt.exe eld_mt.c -lm -lpthread -static
  • Windows. Use Developer Command Prompt.
cl /O2 eld.c /Fe:eldc.exe

How to use?

If we input text (after flags), it will make a single detect; if not, it will read from stdin; one result per line.
If we use --scores or --reliable, it will return JSON, if not, a simple unquoted string with language code or und for undetected.

-h, --help              This message
    --list-languages    Print all supported codes and exit
-v, --verbose           Loading info, timing, throughput
-l, --languages CODES   Restrict to a subset, e.g. -l "es,en,de,fr"
                        Accepts ISO 639-1 or ISO 639-2/T codes.
-s, --scores [N]        Output compact JSON with top-N normalised [0,1] scores
                        N must be 1..20; omit N to get all 20.
                        Example: {"language":"en","scores":{"en":0.9234,...}}
-r, --reliable          Add "reliable" boolean to JSON output
    --scheme NAME       iso639-1 (default) | iso639-2t

For eld_mt.c, we also have the flag -t, --threads to limit threads -t 4

Examples: (on Windows use eldc.exe)

./eldc "Bonjour le monde"
./eldc -l "es,en,fr,de" --scheme iso639-2t "Hola mundo"
./eldc --scores --reliable "Hello world"
./eldc < corpus.txt > results.txt
./eldc --verbose

Benchmarks

Contenders

URL Version Core Language
https://github.com/nitotm/eldc/ 0.4.0 C
https://github.com/pemistahl/lingua-py 2.0.2 Rust
https://github.com/facebookresearch/fastText 0.9.2 C++
https://github.com/CLD2Owners/cld2 Aug 21, 2015 C++
https://github.com/wooorm/franc 7.2.0 Javascript

Benchmarks:

  • Tatoeba: 18MB, short sentences from Tatoeba, 50 languages supported by all contenders, up to 10k lines each.
  • For Tatoeba, I limited all detectors to the 50 languages subset, making the comparison as fair as possible.
  • Also, Tatoeba is not part of ELD training dataset (nor tuning), but it is for fasttext
  • ELD Test: 10MB, sentences from the 60 languages supported by ELD, 1000 lines each. Extracted from the 60GB of ELD training data.
  • Sentences: 8MB, sentences from Lingua benchmark, minus unsupported languages and Yoruba which had broken characters.
  • Word pairs and Single words, ~1MB, also from Lingua, same 53 languages.

Other notes:

  • ELDC pyc is eldc python package.
  • I added ELDC <file> bench to show full potential without a wrapper, ELDC <file> bench times include: file read, detect & save results. ./eldc < eld_test.txt > results.txt -v
  • ELDC <file> -t 4 stands for: command line with multi thread (4 threads), ./eldc_mt < eld_test.txt > results.txt -v -t 4

Time execution benchmark: timetable Accuracy:

accuracy table
  • Lingua participates with 54 languages, Franc with 58.
  • fasttext does not have a built-in subset option, so to show its accuracy and speed potential I made two benchmarks, fasttext-all not being limited by any subset at any test
  • * Google's CLD2 also lacks subset option, and it's difficult to make a subset even with its option bestEffort = True, as usually returns only one language, so it has a comparative disadvantage.
  • Time is normalized: (total lines * time) / processed lines

ELD-C comes out as the fastest detector. For reference, with the command line executable an i7-4770 can process files at over 1M lines per second (1GB/15sec.) with only 1 thread.

I also included a multithreaded version, that can process files almost as fast as the I/O can support, with multithread an i7-4770 jumps to 4M lines per second or 1GB of text in 5 seconds (read 21M lines + classify + store results). In short, it's unnecessarily fast.

This feat would be meaningless if it weren't for the fact that it could also be one of the most accurate detectors; which it is for this benchmark. Accuracy is more benchmark dependent, but it is clearly among the most accurate detectors.

Languages

  • These are the 60 supported languages for Nito-ELDC.

Amharic, Arabic, Azerbaijani (Latin), Belarusian, Bulgarian, Bengali, Catalan, Czech, Danish, German, Greek, English, Spanish, Estonian, Basque, Persian, Finnish, French, Gujarati, Hebrew, Hindi, Croatian, Hungarian, Armenian, Icelandic, Italian, Japanese, Georgian, Kannada, Korean, Kurdish (Arabic), Lao, Lithuanian, Latvian, Malayalam, Marathi, Malay (Latin), Dutch, Norwegian, Oriya, Punjabi, Polish, Portuguese, Romanian, Russian, Slovak, Slovene, Albanian, Serbian (Cyrillic), Swedish, Tamil, Telugu, Thai, Tagalog, Turkish, Ukrainian, Urdu, Vietnamese, Yoruba, Chinese

  • These are the ISO 639-1 codes that include the 60 languages. Plus 'und' for undetermined
    It is the default ELD language scheme. --scheme iso639-1

am, ar, az, be, bg, bn, ca, cs, da, de, el, en, es, et, eu, fa, fi, fr, gu, he, hi, hr, hu, hy, is, it, ja, ka, kn, ko, ku, lo, lt, lv, ml, mr, ms, nl, no, or, pa, pl, pt, ro, ru, sk, sl, sq, sr, sv, ta, te, th, tl, tr, uk, ur, vi, yo, zh

  • ISO 639-2/T codes (which are also valid 639-3) --scheme iso639-2t.

amh, ara, aze, bel, bul, ben, cat, ces, dan, deu, ell, eng, spa, est, eus, fas, fin, fra, guj, heb, hin, hrv, hun, hye, isl, ita, jpn, kat, kan, kor, kur, lao, lit, lav, mal, mar, msa, nld, nor, ori, pan, pol, por, ron, rus, slk, slv, sqi, srp, swe, tam, tel, tha, tgl, tur, ukr, urd, vie, yor, zho


More info

  • ELD-C executable is 24MB, with a similar runtime memory use.
  • ELD-C only reads first 1000 bytes of the input string (benchmarks are fair, with all lines under), but could be modded, if you feel an increased --limit flag/option is necessary, open a discussion.
  • Unlike other versions of ELD, ELD-C only comes with the 'large' database size, as that is the optimal one, but other sizes could be added.
  • Next improvement could be a better training data set, my own "small" 60GB of data are not as clean as I wish, fineweb-2 looks good.

Donations and suggestions

If you wish to donate for open source improvements, hire me for private modifications, request alternative dataset training, or contact me, please use the following link: https://linktr.ee/nitotm

Metadata

Release files for eldc 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eldc 0.4.0
File Size Uploaded
eldc-0.4.0.tar.gz 14.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for eldc 0.4.0
File
eldc-0.4.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
eldc-0.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
eldc-0.4.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
eldc-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
eldc-0.4.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
eldc-0.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
eldc-0.4.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
eldc-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
eldc-0.4.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
eldc-0.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
eldc-0.4.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
eldc-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
eldc-0.4.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
eldc-0.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
eldc-0.4.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
eldc-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
eldc-0.4.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
eldc-0.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
eldc-0.4.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
eldc-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
eldc-0.4.0-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
eldc-0.4.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
eldc-0.4.0-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
eldc-0.4.0-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details

Total release size: 651.1 MB

Release files / eldc-0.4.0.tar.gz

Download URL eldc-0.4.0.tar.gz
Size 14.7 MB
Tags Source
SHA-256 checksum
How to use checksums
889f7c2ce0719502684277583d4cf8495e4944a90908fb8bf0da02d0bc394c66
BLAKE2b-256 checksum
How to use checksums
878baa380e744ee46369312cce87c3bc948f9d46ae0074da4729533fd9f95117
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp313-cp313-win_amd64.whl

Download URL eldc-0.4.0-cp313-cp313-win_amd64.whl
Size 26.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
d94951dc7a273d3c30bd7390bbb3c741f21034ac14e9b35c5e322519453aaedb
BLAKE2b-256 checksum
How to use checksums
5c6871e6d003d99063c297572aa89975b38f10852498da974a06d491c0252f19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eldc-0.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 26.5 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b8db1760c582df03880432b28f0f2a062c405e0e7322118c0ca6b22379225a51
BLAKE2b-256 checksum
How to use checksums
720942d708ac0264eaa75988324c58cc43b522926cd2c97d5f52cc435471f98c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL eldc-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
Size 26.6 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7989ac07ae8329905406c806c6ead7957167970e3a88e4bc4f65b8171efeb0c3
BLAKE2b-256 checksum
How to use checksums
d463c7ce0162cad0e29597747a57dd2d5ef0331bd1863f6d02ddc98064248cbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl

Download URL eldc-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl
Size 26.5 MB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
61f22718ea09e94e48660da849a9d3ffb5afe1f5e43384ee4a8135a48f8e0728
BLAKE2b-256 checksum
How to use checksums
7e5ae4b21e95b0d26b61f09f19403a8cadc318b760a68c58fb810395755f9d16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp312-cp312-win_amd64.whl

Download URL eldc-0.4.0-cp312-cp312-win_amd64.whl
Size 26.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3a017cf3236939d5891458fd40affb857c3900f957b92b180e34c5a11af00c1e
BLAKE2b-256 checksum
How to use checksums
6574534e4ef19930329a0c858d20badffa5ce15b3dd21294922300c5dc4b7019
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eldc-0.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 26.5 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
15f575a1d01dca9315a58bd39f9e73eaca311f25f334a07c4b8b2f7fbeaaf1a1
BLAKE2b-256 checksum
How to use checksums
d5536b8fd635813603da6dd0edfbe6b918c77c33576f39d612e0e78dc5f6e22c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL eldc-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Size 26.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ffb71de2a3334ba9fdec495a8251ae4bb3536dcf156c90f978f5a670ab72ddf6
BLAKE2b-256 checksum
How to use checksums
f78dbf3defd6f2dec61182b14a096ed200d6d5f0e7c3611478ef5ff4b386a382
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL eldc-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 26.5 MB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
1994390619524aa65e0af95f3ed022e8b87d15497e2c363664f4cd1336565d06
BLAKE2b-256 checksum
How to use checksums
c26eaf7650b09aa29b8405ae28f50ba588374c98fe5b2f8edb49468d910d107f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp311-cp311-win_amd64.whl

Download URL eldc-0.4.0-cp311-cp311-win_amd64.whl
Size 26.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
559c34baaeb2e91efcaf39796b1f4af118dc6f27514572831d12c0feef6ca082
BLAKE2b-256 checksum
How to use checksums
dc38796e2735329d1b614855336246bb8459272ce1e9ffac604dc96e170cf91c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eldc-0.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 26.5 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1946e6d2dceed5a6575783d666332e7679f713574387f1efb08b5242e9eed22e
BLAKE2b-256 checksum
How to use checksums
7064bcc3e8cb88e697341f4cb0082dcd439fe459a9bed6014d7d77f690db8e3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL eldc-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Size 26.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2a6e3af3406e0fd57853744cc2c9705e3a714cbbb27537914046f3f02e1564cf
BLAKE2b-256 checksum
How to use checksums
b3544804d6df60a52a5a17844f838c6948ed49c7a148f72322f88e58fa5305bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL eldc-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 26.5 MB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
a207862de1cb36c623e945b3f74d0cf1ecc0fb7c1117262e942ea3936887324f
BLAKE2b-256 checksum
How to use checksums
872f4f238956e37ae58aa292fa44252454e15a1f331817b7e1e92e6d59ca61a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp310-cp310-win_amd64.whl

Download URL eldc-0.4.0-cp310-cp310-win_amd64.whl
Size 26.5 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
5a6f28047b0cb69cc4e87d4b2cd153c2899f27c102c71ee00ac2e97181c71216
BLAKE2b-256 checksum
How to use checksums
e60446a8e15cea7c11d72d770bd9dbe54a0536df16ed03d016087ca143f3c634
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eldc-0.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 26.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
13bd02ba4cc75d8a6a76dd962a2fe5caa3f160aa807bd7ecdd63a775418d193a
BLAKE2b-256 checksum
How to use checksums
04551c43885da7ea5253abcf1af4d4f792299e4df46c95318e3ea4bd14b2a1b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL eldc-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Size 26.6 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
05957f9a5f02d43625874691a7fc6483682ee4ec13d4488df7de4baac6e25c8f
BLAKE2b-256 checksum
How to use checksums
72a9715ff2ad4106a7909a674e54a277a55e4d74f86ac2dfc2e4e0dd14331fe2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl

Download URL eldc-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl
Size 26.5 MB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
269bc7f3d1471d5c1303ad0aab63fbd40bad93868961a9a00f50f3391c6a7507
BLAKE2b-256 checksum
How to use checksums
a8ad659f749391b4e290f635a8faa2dce0437b0befa25c71fd1539681f2dabb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp39-cp39-win_amd64.whl

Download URL eldc-0.4.0-cp39-cp39-win_amd64.whl
Size 26.5 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
f5cf9346601c1c4907a23fe7052b41280dd71567d3cf8bfcbb3b79b23d390232
BLAKE2b-256 checksum
How to use checksums
cd709806ce4029bb71cc7af4b9cdbc10ebc2c0e7267b6a03cee470828b0a4526
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eldc-0.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 26.5 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
bc4f5dcfd93b2d15dd4f5392c22e5f729dab2fa2abdab0e8f4c849d6a9e1f271
BLAKE2b-256 checksum
How to use checksums
04f0e6902f4a08ab820aedf3f9f84a9b8147f248f17ce9c079d6ffd88f2e631f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL eldc-0.4.0-cp39-cp39-macosx_11_0_arm64.whl
Size 26.6 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2c3bfc1f7fb07c41a24fcb318214970d24c3854dc68637792192c8c1f079cece
BLAKE2b-256 checksum
How to use checksums
9e0fd76ae08160ed9b69a55164a5b14dedc26d17fe56252231ef0f512b28ab62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl

Download URL eldc-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl
Size 26.5 MB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
a475d3cc9921cb15a3ad699160f02aecc6fa2c4cb9e1e30b60684a1076f57204
BLAKE2b-256 checksum
How to use checksums
d0bd6fd4cbbf82c9d81dccf5d15050d4d44e73d8f619b53c3768f707de0f671c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp38-cp38-win_amd64.whl

Download URL eldc-0.4.0-cp38-cp38-win_amd64.whl
Size 26.5 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
2bce399ffa8af7fb0a96a344253943ca16faf4b518401ddfd499cd7d1e323362
BLAKE2b-256 checksum
How to use checksums
87feb7cab2d63764d2e70d61f35e62722a568c4cabdf09c011759a420d119e3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL eldc-0.4.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 26.5 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3cc9c56e9cbe482070ffa6d173fc6482027b51897358574aeda22c7b2cb141cc
BLAKE2b-256 checksum
How to use checksums
183cdfbc07e9b2ae1ed285829d8b72f9faaff367578ee6ed602cc4cedbbd2d88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp38-cp38-macosx_11_0_arm64.whl

Download URL eldc-0.4.0-cp38-cp38-macosx_11_0_arm64.whl
Size 26.6 MB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b8be372a9295e80f74b32e7ae74cd096f844880cd5f25d188c17a74fa35aba6f
BLAKE2b-256 checksum
How to use checksums
4a7463618218ef60da1616db31decd5efb9553af17672df4f1050cf4d545ffbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release files / eldc-0.4.0-cp38-cp38-macosx_10_9_x86_64.whl

Download URL eldc-0.4.0-cp38-cp38-macosx_10_9_x86_64.whl
Size 26.5 MB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
cbae364396739b79c8f5c5ed12ce56fa605e7ca7afdca5d840e1c412f6fcc754
BLAKE2b-256 checksum
How to use checksums
22866edf876eb22bed4277b8f97ac60e56a01a6c9b7c9bde18063d1e6721d2ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

25 release files

0.3.0

25 release files

0.2.0

25 release files

0.1.2

25 release files

0.1.1

25 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page