Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/seamus-brady/awesome-eiffel

A curated list of awesome Eiffel and Eiffel libraries, resources and tools.
https://github.com/seamus-brady/awesome-eiffel

List: awesome-eiffel

Last synced: about 1 month ago
JSON representation

A curated list of awesome Eiffel and Eiffel libraries, resources and tools.

Awesome Lists containing this project

README

        

# Awesome Eiffel

Below is a curated list of awesome Eiffel and Eiffel libraries, resources and tools.

#### About Eiffel

![Eiffel logo](./images/logo.png "Eiffel logo")

* Eiffel is an open source ISO/EMCA standard programming language.
* Eiffel is statically typed, class based and object-oriented.
* Eiffel is easy to learn with a simple clear syntax.
* Eiffel has an excellent open source IDE, compiler and debugger in EiffelStudio.
* Eiffel has a large range of libraries available including web, database and GUI libraries.
* The Eiffel compiler provides static protection against calls on null references.
* With Design by Contract tightly integrated into the Eiffel language, one can create better, safer software.
* Eiffel has a easy to use built-in concurrency model called SCOOP.
* Eiffel has automatic memory management with garbage collection.
* Eiffel allows simple multiple inheritance.
* Eiffel exposes lambda calculus as Agents, or objects that wrap computations and closures.

## Contents
- [Community](#community)
- [Cryptogaphy](#cryptogaphy)
- [Databases](#databases)
- [Documentation](#documentation)
- [Example Apps](#example-apps)
- [Example Code](#example-code)
- [Games](#games)
- [GUI](#gui)
- [Graphics](#graphics)
- [IDEs and Editors](#ides-and-editors)
- [Implementations](#implementations)
- [Interop](#interop)
- [Machine Learning](#machine-learning)
- [Mathematical Libraries](#mathematical-libraries)
- [Multithreading and Concurrency](#multithreading-and-concurrency)
- [Package Repositories](#package-repositories)
- [Resources](#resources)
- [Standards](#standards)
- [Testing](#testing)
- [Web](#web)

--------------------------

## Community
*Where Eiffel users hang out.*

* [Eiffel.org](https://www.eiffel.org/welcome) - A forum that brings together Eiffel developers around the world.
* [Eiffel Users](https://groups.google.com/g/eiffel-users) - Eiffel Users group.
* [EiffelStudio Gitter](https://gitter.im/EiffelSoftware/EiffelStudio) - Gitter community for EiffelStudio.
* [dev.eiffel.com](https://dev.eiffel.com/Main_Page) - The central resource for EiffelStudio developers and contributors.
* [Eiffel on Stackoverflow](https://stackoverflow.com/questions/tagged/eiffel) - Eiffel questions on Stackoverflow.

## Cryptography
*Eiffel crypto libraries.*

* [wrap_monocypher](https://github.com/jvelilla/wrap_monocypher) - Eiffel binding of Monocypher C API.
* [RSA](https://github.com/jvelilla/rsa) - Eiffel RSA bindings.

## Databases
*Relational database access in Eiffel.*

* [EiffelStore](https://www.eiffel.org/doc/solutions/EiffelStore) - Interfacing Eiffel with various databases. Comes with EiffelStudio.

## Documentation
*Eiffel related documentation.*

* [Eiffel Guide](https://eiffel-guide.com) - A comprehensive guide to Eiffel syntax.
* [Eiffel Programming Language Syntax](https://www.eiffel.org/doc/eiffel/Eiffel_programming_language_syntax) - A less complete and less formal guide to Eiffel syntax.
* [Eiffel Reserved Words](https://www.eiffel.org/doc/eiffel/Eiffel_programming_language_reserved_words) - Eiffel programming language reserved words.
* [Eiffel Studio 19.05 Classes](https://www.eiffel.org/files/doc/static/19.05/libraries/class_list.html) - All library class dictionary for Eiffel Studio v19.05.
* [Eiffel Studio 20.05 Classes](https://www.eiffel.org/files/doc/static/20.05/libraries/class_list.html) - All library class dictionary for Eiffel Studio v20.05.
* [ETL 2nd edition vs Eiffel Software](https://www.eiffel.org/doc/eiffelstudio/Differences_between_ETL_2nd_printing_and__Eiffel_Software__implementation) - Differences between ETL 2nd printing and Eiffel Software implementation.
* [Standard ECMA-367 vs Eiffel Software](https://www.eiffel.org/doc/eiffelstudio/Differences_between_standard_ECMA-367_and_Eiffel_Software_implementation) - Differences between standard ECMA-367 and Eiffel Software implementation.

## Example Apps
*Examples of applications built in Eiffel.*

* [My Ching](http://myching.software/en/home/my-ching.html) - A commercial, cross platform software companion to the ancient I Ching divination system.

## Example Code
*Examples of useful Eiffel code.*

* [Eiffel Libraries](https://github.com/eiffelsoftware/libraries) - All the public libraries included with EiffelStudio.
* [Gobo Eiffel](https://github.com/gobo-eiffel/gobo) - Gobo Eiffel provides free and portable Eiffel tools and libraries.
* [Eiffel IRON repository](https://iron.eiffel.com/repository/) - A catalog of Eiffel IRON library packages.
* [Eiffel Loop](https://github.com/finnianr/eiffel-loop) - A treasure trove of Eiffel code.
* [Eiffel Rosetta Code](https://github.com/jvelilla/RosettaCode) - Examples in Eiffel based on problem descriptions from [Rosetta Code](http://rosettacode.org/wiki/Rosetta_Code).
* [Eiffel Recipes](https://github.com/jvelilla/eiffel-recipes) - Assorted Eiffel examples - command line, file and directory access amongst others.
* [Eiffel Design Patterns](https://github.com/jvelilla/EiffelDesignPatterns) - High-quality Eiffel components.
* [Demonstration of SCOOP](https://github.com/kwaxer/scoop) - Demonstration of SCOOP usage in Eiffel.
* [SCOOP Patterns](https://github.com/romasch/scoop_patterns) - Examples for concurrency patterns in Eiffel.

## Games
*Libraries to create Games.*

* [Eiffel_Game2](https://www.eiffelgame2.org/) - A 2D game library.
* [Eiffel_Box2d](https://gitlab.com/tioui/eiffel_box2d) - A 2D physics engine.

## GUI
*Graphic user Interfaces in Eiffel.*

* [Eiffel Vision](https://www.eiffel.org/doc/solutions/EiffelVision_2) - A tool for building GUI applications in Eiffel.

## Graphics
*Eiffel graphics libraries.*

* [wrap_cairo](https://github.com/jvelilla/wrap_cairo) - Eiffel bindings to the Cairo 2D graphics library.
* [wrap_rsvg](https://github.com/jvelilla/wrap_rsvg) - Eiffel bindings to the LibSVG library.
* [Eiffel_Cairo](https://github.com/tioui/Eiffel_Cairo) - An Eiffel 2D graphics library base on Cairo.
* [Eiffel_Pango](https://gitlab.com/tioui/Eiffel_Pango) - An Eiffel library to render text base on Pango.
* [Eiffel_Diagram](https://github.com/tioui/Eiffel_Diagram) - An Eiffel library to generate diagram using Eiffel_Cairo and Eiffel_Cairo.

## IDEs and Editors
*Editing Eiffel code.*

* [Eiffel Studio](https://www.eiffel.com/eiffelstudio/product/) - EiffelStudio is the the official IDE and compiler for Eiffel.
* [Eiffel Studio Community Edition](https://www.eiffel.org/downloads/channel/stable) - The GPL version of Eiffel Studio IDE and compiler.
* [Eiffel Emacs Mode](https://github.com/jonhermansen/eiffel-mode) - eiffel-mode is a major-mode for editing Eiffel files in GNU Emacs.
* [Vim-Eiffel](https://github.com/eiffelhub/vim-eiffel) - Vim goodies for Eiffel.
* [Sublime Text Eiffel mode](https://packagecontrol.io/packages/Eiffel-Language) - Eiffel syntax and color highlighter for Sublime Text.
* [Using your own editor with Eiffel Studio](https://www.eiffel.org/doc/eiffelstudio/Recompiling_and_Editing) - Editing with an external editor in Eiffel Studio.

## Implementations
*Implementations of the Eiffel language.*

* [Eiffel Studio](https://www.eiffel.com/eiffelstudio/product/) - EiffelStudio is the the official IDE and compiler for Eiffel.
* [Eiffel Studio Community Edition](https://www.eiffel.org/downloads/channel/stable) - The GPL version of Eiffel Studio IDE and compiler.
* [Gobo Eiffel Project](http://www.gobosoft.com/eiffel/gobo/index.html) - Gobo Eiffel Project, a free and portable Eiffel compiler.
* [Liberty Eiffel](https://www.liberty-eiffel.org/) - The Liberty Eiffel project is the GNU Eiffel Compiler.

## Interop
*Eiffel interop with other languages.*

* [WrapC](https://github.com/eiffel-wrap-c/WrapC) - WrapC is an Eiffel wrapper generator for C libraries.
* [Eiffel2Java](https://www.eiffel.org/doc/solutions/Eiffel2Java) - Call Java routines or attributes from Eiffel code.
* [Python Embedded Programs in Eiffel](https://github.com/jvelilla/pepe) - Example of embedding Python code in Eiffel.

## Machine Learning
*Articial Intelligence and Eiffel.*

* [Wrapping TensorFlow C API with WrapC](https://www.eiffel.org/blog/javier/2019/10/wrapping-tensorflow-c-api-wrapc) - A tutorial.

## Mathematical Libraries
*Eiffel maths libraries.*

* [Algae](https://github.com/schoelle/algae) - Two dimensional matrices for the Eiffel programming language.
* [jj_graphs](https://github.com/boxer41a/jj_graphs) - Eiffel Graph Library.

## Multithreading and Concurrency
*Eiffel across multiple threads and CPUs.*

* [SCOOP](https://www.eiffel.org/doc/solutions/Concurrent_programming_with_SCOOP) - SCOOP is Simple Concurrent Object-Oriented Programming.
* [Concurrency Patterns in SCOOP](https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/154738/eth-46802-01.pdf?sequence=1&isAllowed=y) - Concurrency patterns in Eiffel.
* [SCOOP Examples](https://www.eiffel.org/doc/solutions/SCOOP_examples) - The examples for SCOOP that are distributed with EiffelStudio.
* [Concurrent programming in SCOOP](http://se.ethz.ch/~meyer/down/scoop/scoop_tutorial.pdf) - A tutorial.
* [Demonstration of SCOOP](https://github.com/kwaxer/scoop) - Demonstration of SCOOP usage in Eiffel.
* [EiffelThreads](https://www.eiffel.org/doc/solutions/EiffelThreads) - The EiffelThreads library includes the main components needed to build multi-threaded systems.

## Package Repositories
*Eiffel packages and libraries.*

* [Eiffel Libraries](https://github.com/eiffelsoftware/libraries) - All the public libraries included with EiffelStudio.
* [Gobo Eiffel](https://github.com/gobo-eiffel/gobo) - Gobo Eiffel provides free and portable Eiffel tools and libraries.
* [Eiffel IRON repository](https://iron.eiffel.com/repository/) - A catalog of Eiffel IRON library packages.
* [Eiffel Loop](http://eiffel-loop.com/) - A treasure trove of Eiffel code.

## Resources
*Various resources, such as books, websites and articles, for improving your Eiffel development skills and knowledge.*

* [Eiffel: The Language, third edition](http://se.ethz.ch/~meyer/ongoing/etl/LANGUAGE.pdf) - Eiffel: The Language, third edition.
* [Design by Contract and Assertions](https://www.eiffel.org/doc/solutions/Design_by_Contract_and_Assertions) - Concerning correctness in software.
* [Eiffel Design Patterns](http://se.inf.ethz.ch/people/arnout/patterns/) - Ph.D. dissertation on high-quality Eiffel components.
* [Comparing Eiffel and Java](https://www.cs.rit.edu/~jeh/eiffel/JvsE.html) - Comparing two OO languages.
* [Java & Eiffel](http://se.inf.ethz.ch/courses/2013a_spring/JavaCSharp/lectures/Lecture_11_A_eiffel_java_Cs.pdf) - An objective personal assessment.
* [Applying “Design by Contract” ](http://se.ethz.ch/~meyer/publications/computer/contract.pdf) - Building software components on the basis of carefully designed contracts.
* [Eiffel on YouTube](https://www.youtube.com/user/EiffelLanguage/playlists) - A selection of Eiffel related YouTube playlists.
* [Eiffel on GitHub](https://github.com/search?l=Eiffel&q=eiffel&type=Repositories) - Eiffel repositories on GitHub.

## Standards
*The Eiffel language definition is an international standard of the ISO.*

* [ISO Eiffel Standard](https://www.iso.org/obp/ui/#iso:std:iso-iec:25436:ed-1:v1:en) - The ISO Eiffel Standard.
* [ECMA-367](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-367.pdf) - The earlier EMCA Eiffel standard.

## Testing
*Unit testing in Eiffel.*

* [Unit tests in EiffelStudio](https://www.eiffel.org/doc/eiffelstudio/Create_a_manual_test) - Documentation on creating unit tests in Eiffel.
* [WebDriver-Eiffel](https://github.com/EiffelWebFramework/WebDriver-Eiffel) - Eiffel Selenium binding.

## Web
*Web related Eiffel code.*

* [EiffelWeb](https://www.eiffelweb.org/) - A framework to build web applications in Eiffel.
* [ROC](https://github.com/EiffelWebFramework/ROC) - Eiffel CMS inspired by Drupal.
* [JSON](https://github.com/eiffelhub/json) - JSON library for Eiffel.
* [WebSocket](https://github.com/EiffelWebFramework/WebSocket) - Framework to build WebSockets in Eiffel.
* [Cyprus](https://github.com/EiffelWebFramework/cypress) - An OAuth protocol implementation in Eiffel.
* [Eiffel Bootstrap 4](https://github.com/ljr1981/wsf_bootstrap_4) - An Eiffel-based wrapping of the Bootstrap 4 framework.
* [eiffel_to_swagger](https://github.com/EiffelWebFramework/eiffel_to_swagger) - Eiffel library in order to produce Swagger documentation from Eiffel annotations.
* [EGSuite](https://github.com/EiffelWebFramework/EGSuite) - EGSuite is an Eiffel collection of libraries to integrate with GSuite.