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

Release files for ecdev 0.0.6

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.6
File Size Uploaded
ecdev-0.0.6.tar.gz 1.9 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for ecdev 0.0.6
File
ecdev-0.0.6-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
ecdev-0.0.6-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
ecdev-0.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
ecdev-0.0.6-py3-none-manylinux1_x86_64.musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64, Linux glibc 2.5+ x86-64 Details
ecdev-0.0.6-py3-none-manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details
ecdev-0.0.6-py3-none-manylinux1_i686.musllinux_1_2_i686.whl Python 3 none Linux musl 1.2+ x86-32, Linux glibc 2.5+ x86-32 Details
ecdev-0.0.6-py3-none-manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl Python 3 none Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32, Linux glibc 2.12+ x86-32 Details
ecdev-0.0.6-py3-none-macosx_10_15_x86_64.whl Python 3 none macOS 10.15+ x86-64 Details
ecdev-0.0.6-py3-none-macosx_10_15_arm64.whl Python 3 none macOS 10.15+ ARM64 Details

Total release size: 14.0 MB

Release files / ecdev-0.0.6.tar.gz

Download URL ecdev-0.0.6.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
78fac4013a97fd213cad4071acc485013e645ca37066a150815f746d68884b8a
BLAKE2b-256 checksum
How to use checksums
e5b8de7f46b7fc38c07c8b7ac1ce5a502c92dc459776d1d65ca34c7688824db0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

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

Download URL ecdev-0.0.6-py3-none-win_amd64.whl
Size 1.4 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
ec88e6a70f2a0a76f93b473ad54ebd58243c7e582d1f074263de7175267fa6af
BLAKE2b-256 checksum
How to use checksums
f35c043e517d29ab77524dbf77584ab78ed983aa33ae0b895fb08dcecc70926e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

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

Download URL ecdev-0.0.6-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
bed51a1b361448f26b54c0b4fc16d8c9dc9bf94327f99073845046a48ccc80cd
BLAKE2b-256 checksum
How to use checksums
7aada2beebceb821e40bf430cd108b6e59a5708c242d5ee81467b353bef17b7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / ecdev-0.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ecdev-0.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.3 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
0b4956f7779e890e4a5db1b1c6f3deb436e56ec9c4f9f8da2c95398a19b7b515
BLAKE2b-256 checksum
How to use checksums
b892899cab67832087171422b0f372dee761fcb96a8f5bc849f0e8f1c05b2476
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / ecdev-0.0.6-py3-none-manylinux1_x86_64.musllinux_1_2_x86_64.whl

Download URL ecdev-0.0.6-py3-none-manylinux1_x86_64.musllinux_1_2_x86_64.whl
Size 1.5 MB
Tags Linux glibc 2.5+ x86-64 Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
840bb057cef6927aeec5db772578f0a91d2602d65df4f827f424fa52c290bbc0
BLAKE2b-256 checksum
How to use checksums
8eabb847354c9bd6b8b38417883288307c41c5294c8dd712de7ecdd9a6311ae4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / ecdev-0.0.6-py3-none-manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ecdev-0.0.6-py3-none-manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.3 MB
Tags Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 Python 3
SHA-256 checksum
How to use checksums
38026681ea6339415d516d7b386ec6b7effadca485cbbd9e53ede3c2df2a2e08
BLAKE2b-256 checksum
How to use checksums
f965a953d4bd99da848cf908a09ff82326073979c3ec48d3fe26f72d7cc9ab62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / ecdev-0.0.6-py3-none-manylinux1_i686.musllinux_1_2_i686.whl

Download URL ecdev-0.0.6-py3-none-manylinux1_i686.musllinux_1_2_i686.whl
Size 1.6 MB
Tags Linux glibc 2.5+ x86-32 Linux musl 1.2+ x86-32 Python 3
SHA-256 checksum
How to use checksums
ba0d5a3c093c70661ba867e2885f62b9ef5bebe39bf350ad27da4f767fc5d13d
BLAKE2b-256 checksum
How to use checksums
2c543ba5e4539bbd7b09ab39873a6dba9be672a2cf62ea9e4914ffe5742a8bb7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / ecdev-0.0.6-py3-none-manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL ecdev-0.0.6-py3-none-manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 1.4 MB
Tags Linux glibc 2.12+ x86-32 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 Python 3
SHA-256 checksum
How to use checksums
128abf01f7524a5ddf12853235de3f87aef40e623a1b3169ddce664c56b79582
BLAKE2b-256 checksum
How to use checksums
11efeb7f78043cc6c7800ab0ade1b665b46cd7ba4eda2785dc2164e2a1556361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

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

Download URL ecdev-0.0.6-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
a6ba5afcdb04079f7b517630e322705d078cf3e71287480e626994535caa6c54
BLAKE2b-256 checksum
How to use checksums
66b1d8806cc3a29a5d06997142bfe220c78769fa4c6ce8669e20e3c4003e5638
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

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

Download URL ecdev-0.0.6-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
ff3a52f2fdaaf5e4f0a5b4e2a7ae2fff96b0020c9a3f559e53eae677e533f052
BLAKE2b-256 checksum
How to use checksums
66f2e75efc3da6ba80aed2a6f4aec051ac21ed00a0ea1f4f88aa3bf24214d963
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.0.6 This release

10 release files

0.0.3

4 release files

0.0.2

4 release files

0.0.1

4 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