Skip to main content

eC Software Development Kit and Runtime Library

https://ec-lang.org

A stand-alone Software Development Kit and runtime library for the eC programming language

(part of the Ecere SDK)

Copyright (c) 1996-2025, Jérôme Jacovella-St-Louis

Copyright (c) 2005-2025, Ecere Corporation

Licensed under the BSD 3-Clause License

Source: https://github.com/ecere/eC

Python packaging: https://github.com/ecere/pyecdev

The eC Programming Language

eC is a light, expressive and intuitive C Style object-oriented programming language. eC is a superset of C89 (in almost a strict sense, with few exceptions such as potential clashes with a few new keywords like class). eC compiles natively just like C (currently, the eC compiler transpiles to C code). C libraries can be used directly and other libraries can invoke C-exported functions and methods in eC code directly through a C API (or through bgen, see below). The language offers modern object-oriented features such as classes, (single) inheritance, polymorphism, properties, generics, defined expressions, unit types (e.g., Radians/Degrees, Meters/Feet) and bit classes. eC supports automatic symbol resolution across multiple eC source files and libraries, which avoids the need for both prototypes and header files. Developers with experience programming in C, C++, Java and/or C# should find eC very familiar. eC also supports reflection with a dynamic object type system and runtime module loading and ejection, facilitating the implementation of plugin systems. Constructors, destructors and reference counting (semi-automatic through global and member instances) also facilitate memory management.

Learn more about eC here.

Ollie-the-sea-otter

Compiler tools

The eC compiler tools include:

  • ecc, the eC compiler, which currently generates C from eC source files as part of the compilation process, which are then compiled using e.g., GCC or Clang,
  • ecp, the eC precompiler, generating .sym files allowing to automatically resolve symbols across eC source files as an alternative to header files,
  • ecs, the eC symbol loader generator, writing a .main.ec file as part of the linking process which will load the necessary symbols at runtime from dynamic eC modules,
  • ear, the Ecere archiver, which packs and unpacks files into a simple archive format based on zlib, with the ability to embed resources within shared libraries and executables and access them using the eC runtime library as e.g., <:archive>directory/file.txt,
  • libecrt, the eC runtime library provided as a shared library (also available independently so that runtime packages depend only on that library), as well as a static library (libecrtStatic.a),
  • libectp, the eC transpiler library, a dependency of the ecc, ecp and ecs tools, including the capability to parse eC source code into an abstract syntax tree and convert it to C99 source code using a few GCC extensions.

See also:

  • epj2make to generate cross-platform GNU Makefiles from Ecere projects (.epj JSON files),
  • bgen for automatically generating object-oriented bindings for C, C++ and Python from eC libraries,
  • as well as the other components of the Ecere SDK such as the Ecere Integrated Development Environment.

eC runtime functionality

The eC runtime library implements:

  • management of eC data types, including the various flavors of structs and classes with and without reference counting, runtime type information, virtual method tables, reflection with the ability to register and define classes at runtime (loading/ejecting new dynamic modules), string management, generic field values containing type information, binary (de)serialization,
  • various types of containers (dynamic arrays, hash tables, linked lists, AVL Trees, multiple forms of associative arrays),
  • files I/O including temporary files, bidirectional processing input/output pipes, creating/decompressing/accessing files from archives (including resources packed directly within the executables), file/directory monitoring, cross-platform file handling functions,
  • multithreading support including threads, mutexes, semaphores and conditions,
  • internationalization (extensive unicode support with the Unicode data resources embedded within the library), internationalization of text strings compatible with GNU gettext, i18n of libecrt itself currently including Chinese, Brazilian Portuguese, Spanish, partial Russian translation, as well as the start of other languages,
  • date and time handling,
  • a JSON parser and writer (with support for automatic JSON (de)serialization of any eC types), as well as utilities to manage application settings stored in JSON files.

See also:

Documentation

See https://ecere.org/docs/ecere/ecere.html and https://ecere.org/docs/ecereCOM/ecere.html for the API documentation of the core eC runtime library, which covers the sys and com namespaces of the Ecere runtime library.

Tao The Ecere Tao of Programming is a Programmer's Guide (still work in progress) teaching the foundations of the eC programming language, also including a C primer.

See also the samples provided with the SDK, and some featured projects as prebuilt binaries at https://ecere.org/software.

Reach out on IRC - #ecere on irc.libera.chat

Metadata

Release files for ecdev 0.0.7

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

Source distribution (sdist)

Source distribution for ecdev 0.0.7
File Size Uploaded Provenance Actions
ecdev-0.0.7.tar.gz 1.9 MB Without provenance Details for ecdev-0.0.7.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for ecdev 0.0.7
File Actions
ecdev-0.0.7-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for ecdev-0.0.7-py3-none-win_amd64.whl
ecdev-0.0.7-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details for ecdev-0.0.7-py3-none-musllinux_1_2_x86_64.whl
ecdev-0.0.7-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details for ecdev-0.0.7-py3-none-musllinux_1_2_aarch64.whl
ecdev-0.0.7-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details for ecdev-0.0.7-py3-none-manylinux_2_28_aarch64.whl
ecdev-0.0.7-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for ecdev-0.0.7-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
ecdev-0.0.7-py3-none-macosx_10_15_x86_64.whl Python 3 none macOS 10.15+ x86-64 Details for ecdev-0.0.7-py3-none-macosx_10_15_x86_64.whl
ecdev-0.0.7-py3-none-macosx_10_15_arm64.whl Python 3 none macOS 10.15+ ARM64 Details for ecdev-0.0.7-py3-none-macosx_10_15_arm64.whl

Total release size: 11.1 MB

Release files / ecdev-0.0.7.tar.gz

Download URL ecdev-0.0.7.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
d93f323bfffb8cbf0c4cc012760a0ffd8f54622945dc730aa67b6bd3e2e67f1f
BLAKE2b-256 checksum
How to use checksums
3a31b7b30ebaceb8dd7bd2bdc58922bd52396d69e84a097f1af7e06f6cd669c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / ecdev-0.0.7-py3-none-win_amd64.whl

Download URL ecdev-0.0.7-py3-none-win_amd64.whl
Size 1.4 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
7901daddfbbfb559f88c9c375c902f090beb31d743f8c03e5b706d41e4507f1e
BLAKE2b-256 checksum
How to use checksums
00b386e9e559504625d43b001a24462014bd697333cb5e590a23490ee69ab631
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / ecdev-0.0.7-py3-none-musllinux_1_2_x86_64.whl

Download URL ecdev-0.0.7-py3-none-musllinux_1_2_x86_64.whl
Size 1.5 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
c13e47ce65bf81d559ebd42fe735dbcba459f5b04c67d8cea5dcecf4f60a673c
BLAKE2b-256 checksum
How to use checksums
c66e0b74832d127935073834832582b701ab10f84c37713cf3cad2397613c6a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / ecdev-0.0.7-py3-none-musllinux_1_2_aarch64.whl

Download URL ecdev-0.0.7-py3-none-musllinux_1_2_aarch64.whl
Size 1.4 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
46ba4937eca5fd6ef7b0efeaf9ae066c18cce7e29e1c38671810e53fd86f96e8
BLAKE2b-256 checksum
How to use checksums
8f3543c21a00c04650d23ef335887a06ce8f75bfa398de93bb11b5f12ebf9c36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / ecdev-0.0.7-py3-none-manylinux_2_28_aarch64.whl

Download URL ecdev-0.0.7-py3-none-manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
2213584e44144a9ed7e29cf44f712c93a2f07a77da4274417ef6d1421582e4a5
BLAKE2b-256 checksum
How to use checksums
dd452041bd06e10f176f8b3c4a7da4dae2944a29bfdd5d62a7ddb58afe385997
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / ecdev-0.0.7-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ecdev-0.0.7-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
2b7fb2b973e9b45c91354e70976114044905bdd04b32c1de8ff50a3bd4512962
BLAKE2b-256 checksum
How to use checksums
b5765b6a21f70c4432e55faff2adc391ae484f8695f1a371ec9a75912c238713
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / ecdev-0.0.7-py3-none-macosx_10_15_x86_64.whl

Download URL ecdev-0.0.7-py3-none-macosx_10_15_x86_64.whl
Size 1.1 MB
Tags Python 3 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
9a38973d877b98e59a337ec4bfc44643c6e118a91a7ece45b3415fb1e51979f0
BLAKE2b-256 checksum
How to use checksums
f3d0044ea122f4685b296e742155deaa97def680919897297a7b6a7ce16b2c2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / ecdev-0.0.7-py3-none-macosx_10_15_arm64.whl

Download URL ecdev-0.0.7-py3-none-macosx_10_15_arm64.whl
Size 1.1 MB
Tags Python 3 macOS 10.15+ ARM64
SHA-256 checksum
How to use checksums
c5dd2bb8bc70f3f9e874de8be591eb16972059b0b37e9a9c980c268d47bbfb2d
BLAKE2b-256 checksum
How to use checksums
39fd21c5569db92d4f250b3d88cc858fd0037b1e96476e492478acd03acdc9ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Security for ecdev 0.0.7

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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