awesome-pharo
A collection of awesome Pharo libraries, tools, frameworks and software.
https://github.com/pharo-open-documentation/awesome-pharo
Last synced: 2 days ago
JSON representation
-
Artificial Intelligence and Machine Learning
- pharo-ai / APriori - Fast algorithm for mining frequent sets of items and finding association rules between items in a database of transactions.
- pharo-ai / awesome-pharo-ml
- Keras Wrapper - Allows to use [Keras](https://keras.io/) functions within Pharo.
- NEAT (NeuroEvolution of Augmenting Topologies) - A genetic algorithm for evolving artificial neural networks. NEAT is probably the most popular algorithm for neuroevolution.
- pharo-ai / APriori - Fast algorithm for mining frequent sets of items and finding association rules between items in a database of transactions.
- pharo-ai / KMeans - K-means clustering.
- pharo-ai / NaiveBayesClassifier - Implementation of a multinomial Naive Bayes classifier in Pharo that can be used for simple spam detection and sentiment analysis.
- pharo-ai / NgramModel - N-gram language model that can be trained to estimate the probability of a next word based on N-1 previous words.
- pharo-ai / TF-IDF - Term Frequency - Inverse Document Frequency (TF-IDF), a statistical metric that reflects the importance of a word in a document. Can be used for finding keywords, ranking words by importance, or as a simple way of finding semantic similarity between documents.
- TensorFlow Bindings - Allows to use [TensorFlow](https://www.tensorflow.org/) in Pharo.
- pharo-ai / KMeans - K-means clustering.
- pharo-ai / NaiveBayesClassifier - Implementation of a multinomial Naive Bayes classifier in Pharo that can be used for simple spam detection and sentiment analysis.
-
Data Structures
- AVL Tree
- BTree - Not a binary tree but a BTree implementation.
- OrderedSet - A Set where an order of elements matters or an OrderedCollection with no duplicates. Supports the complete API of Set and OrderedCollection. Another version or the same is available at https://github.com/pharo-containers/Containers-OrderedSet
- OrderPreservingDictionary - Order preserving dictionary.
- QuadTrees
- Array2D - A grid like structure.
- AVL Tree
- BTree - Not a binary tree but a BTree implementation.
- DataFrame - Tabular data structures for data analysis.
- Grid - A grid implementation.
- Hastable
- Iterators - Implementation of the iterator design pattern.
- KeyedTree
- Multimap - A multi map implementation.
- OrderedSet - A Set where an order of elements matters or an OrderedCollection with no duplicates. Supports the complete API of Set and OrderedCollection. Another version or the same is available at https://github.com/pharo-containers/Containers-OrderedSet
- OrderPreservingDictionary - Order preserving dictionary.
- QuadTrees
- RunArray
- SkipList
- Stack - A stack implementation.
- Trie - a structure for retrieval information.
- UniqueOrdered - Some collections to have unique ordered elements.
- PropertyEnvironment - A dictionary of properties with a lookup in ancestors (also called environment in other languages).
- Array2D - A grid like structure.
-
Databases
- pharo-ado - Enable data persistence in Pharo by using ActiveX Data Objects (ADO) on Microsoft Windows and external DBMS.
- CDB - a CDB implementation in Pharo.
- CouchDB - Pharo client for CouchDB NoSQL Document Database.
- Garage - Database drivers for the Pharo language.
- Glorp - Multi-database cross-platform object-relational persistence for Pharo and many other Smalltalks.
- P3 - PostgresV3 protocol client for Pharo, standalone and integrated with Glorp.
- pharo-ado - Enable data persistence in Pharo by using ActiveX Data Objects (ADO) on Microsoft Windows and external DBMS.
- Pharo-UDBC - Pharo Universal Database Connectivity.
- PunQLite - UnQLite binding for Pharo Smalltalk.
- ReStore - Relational database persistence for Pharo objects (based on SQLite, PostgreSQL or MySQL).
- Tarantalk - Tarantool client for Pharo.
- SCouchDB - Pharo driver for CouchDB database using Zinc client. Supports Mango queries and implements Voyage API.
- Simple-Persistence - Simple file base persistence for when you don't quite need a database.
- SQLite3 - Community-owned official SQLite3 binding for Pharo. Includes packages for use in Glorp.
- Voyage - An object persistence abstraction layer for Pharo.
- Soil - Object oriented database library. Persistency to disk with transactions and search indexes.
-
Datasets
- RandomPartitioner - A tool for partitioning a dataset. Given a set of proportions (e.g. 50%, 30%, and 20%), it shuffles the collection and divides it into non-empty subsets in such a way that every element is included in exactly one subset. Can be used in machine learning and statistical analysis for splitting datasets into training, validation, and test sets.
- Datasets - A collection of small toy datasets used for demonstration and experiments with AI and machine learning. Includes many famous datasets such as Iris, Boston Housing, Wine, Diabetes, MNIST, etc.
- Les Miserables - Coappearance characters of Les Miserables.
- RandomPartitioner - A tool for partitioning a dataset. Given a set of proportions (e.g. 50%, 30%, and 20%), it shuffles the collection and divides it into non-empty subsets in such a way that every element is included in exactly one subset. Can be used in machine learning and statistical analysis for splitting datasets into training, validation, and test sets.
-
Graphics
- GEXF - Pharo [GEXF file](https://gexf.net/) model and exporter.
- Sparta - Sparta is an almost stateless vector graphics API for Pharo that provides bindings to the Moz2D rendering backend.
- GraphViz - Pharo GraphViz binding.
- Bloc - Next generation low-level UI infratructure and framework for Pharo.
- Brick - Next generation widget libraries for Pharo. Works on top of Bloc.
- ConstraintsLayout - A constraints layout for morphic using Cassowary as its backend.
- Colors Extensions - Extensions to Pharo colors.
- GEXF - Pharo [GEXF file](https://gexf.net/) model and exporter.
- Jun - A 3D graphics library with chemoinformatics extensions.
- MaterialColors - Project implementing Material Design recommandations on colors.
- MermaidPharo - Pharo support for [MermaidJS](https://mermaid.js.org/#/).
- PlantUMLPharoGizmo - Pharo support for PlantUML.
- Roassal3 - The agile 2D visualization engine for Pharo version 3. (V2: [Roassal2](https://github.com/ObjectProfile/Roassal3))
- Sparta - Sparta is an almost stateless vector graphics API for Pharo that provides bindings to the Moz2D rendering backend.
- SpecUIAddOns - Add-ons for Spec UI description framework.
- Woden - A 3D graphics engine for Pharo.
- Alexandrie - FFI bindings and a 2D canvas for Pharo based on Cairo, Freetype and Harfbuzz
- Pyramid - Pyramid is a Graphical User-Interface (GUI) builder and editor for Bloc and Toplo.
- Roassal3 - The agile 2D visualization engine for Pharo version 3. (V2: [Roassal2](https://github.com/ObjectProfile/Roassal2))
- Toplo - A widget framework on top of Bloc.
-
IDE
- Smalltalk Vim Mode - Vim Mode for Playground, System Browser, Debugger in Pharo.
- Calypso - Pharo system browser.
- CollectionExtensions - Extensions for Pharo collections API.
- Dawn theme - A warm dark theme for Pharo.
- Glamorous Toolkit - Moldable IDE for Pharo.
- Smalltalk Vim Mode - Vim Mode for Playground, System Browser, Debugger in Pharo.
- Mirage - A windows switcher with a previewer for Pharo.
- Native-Browser - A small project to add the possibility to open native browser via a FileReference.
- TelePharo - Tools to manage and develop remote Pharo images.
- TilingWindowManager - Tiling Window Manager for Pharo.
- Uncommon-Themes - A collection of themes for Pharo.
- Webside - Web based IDE for Pharo and other Smalltalk systems.
- OpenSmock - A collection of tools and workshops designed to streamline the development of applications - especially user interfaces (UI).
-
IOT
- HID - An implementation of the Human Interface Device protocol with a driver to be used with libusb.
- Netatmo API - Netatmo API implementation for Legrand Netatmo products (Weather Station and Healthy HomeCoach / Aircare product).
- PharoThings - Live programming platform for IoT projects based on Pharo.
-
Loggers
- SystemLogger - An extensible object logger.
- TinyLogger - A really small logger for Pharo applications.
- Beacon - A logger using beacon.
- Bell - An observability library written in Smalltalk
- Beacon - The default object logger of Pharo.
- SystemLogger - An extensible object logger.
- Toothpick - A textual logger for Pharo.
-
Testing
- DrTests - An extendable, plugins-based UI for testing Pharo projects.
- StateSpecs - Assertions library based on should expressions.
- Babymock - A visual mock object library.
- DrTests - An extendable, plugins-based UI for testing Pharo projects.
- Hapao - Spy2 is a profiling framework. Spy2 contains Hapao, the visual test coverage tool.
- Mocketry - Mock objects library with very fluent lightweight API.
- µ-talk - Mutation Testing in Smalltalk.
- ParametrizedTests - Extension to SUnit to implement parametrized tests in Pharo.
-
Books
- https://books.pharo.org - Pharo books are a collection of technical or textbook books around Pharo.
- SquareBracketAssociates - Organisation grouping repositories for various books around Pharo.
- Agile Visualization - Visualization made easy in Pharo. It uses the Roassal visualization engine
- Agile Visualization - Visualization made easy in Pharo. It uses the Roassal visualization engine
- Free online books from Stéphane Ducasse website - A collection of free books related to Smalltalk and Pharo.
- Agile Visualization - Visualization made easy in Pharo. It uses the Roassal visualization engine
- https://books.pharo.org - Pharo books are a collection of technical or textbook books around Pharo.
- Agile Artificial Intelligence - Agile Artificial Intelligence is a book that covers classical algorithms commonly assimilated as artificial intelligence techniques.
- Agile Visualization - Visualization made easy in Pharo. It uses the Roassal visualization engine
- Free online books from Stéphane Ducasse website - A collection of free books related to Smalltalk and Pharo.
-
Miscellaneous
- Dr Geo - A software to design & manipulate interactive geometric sketches. It helps kids to explore geometry.
- PharoFamily - PDF image showing a part of Pharo ecosystem.
- Aconcagua - This model represents measures as first class objects, that is, an object that encapsulates a number with its unit.
- BugReport - A small project to ease the bug reporting in Pharo application by dumping clear and detailed stacks.
- Chalten - This is a time model that allows to use dates, months, years, etc. in an easy way.
- DMirror - Tool to spawn new job on forked Pharo images.
- Fog - Pharo Ethereum Driver.
- IPFS - Binding to InterPlanetary File System for Pharo.
- ISO3166 - Codes for the names of countries, dependent territories, and special areas of geographical interest for Pharo applications.
- PharoMisc - Small utilities and libraries around various topics.
- PTerm - Using Unix terminal from Pharo.
- Stylesheet - Stylesheet is a project to define css like stylesheet in Pharo applications.
- Territorial - Geographical Information Retrieval (GIR) project including features to access geopolitical objects like Nations, Cities, Regions, International Organizations, and statistical data.
- Dr Geo - A software to design & manipulate interactive geometric sketches. It helps kids to explore geometry.
-
Network protocols
- FileSystemNetwork - Adds WebDAV and FTP support to Pharo's FileSystem framework. This allows you to use remote WebDAV and FTP locations with the same (FileSystem) API that's used for disk access.
- Stargate - A library supporting the creation of HTTP based RESTful APIs.
- Superluminal - Building blocks for creating HTTP requests and API clients
- Zodiac - in) - Zodiac is an open-source Smalltalk framework implementing TLS/SSL secure as well as regular socket streams.
- Ansible - An AMQP client for Pharo
- JRPC - Yet another [JSON-RPC 2.0](https://www.jsonrpc.org/specification) implementation for Pharo Smalltalk.
- FileSystemNetwork - Adds WebDAV and FTP support to Pharo's FileSystem framework. This allows you to use remote WebDAV and FTP locations with the same (FileSystem) API that's used for disk access.
- PharoZeroMQ - ZeroMQ (ØMQ, 0MQ or ZMQ) library for Pharo.
-
Videos
- How to setup a Pharo project - Video showing how to setup a Pharo project (continuous-integration setup included).
- Infecting morph by virus - Example of usage of [Ghost](https://github.com/pharo-ide/Ghost) to infect a Morph, making it change the color of other Morphs it touches.
- Pharo Tech Talk Feb 2017 : Reflectivity - Reflectivity in Pharo6.
- Pharo Techtalk: Consortium/Association 2017 - Live stream for the pharo tech talk March 2018.
- Pharo TechTalk July 2019: Contribute to Pharo - TechTalk showing how to contribute to Pharo.
-
Web
- Amber - Amber is an implementation of the Smalltalk language that runs on top of the JavaScript runtime. It uses Pharo as reference implementation.
- TelescopeCytoscape - Interactive visualization project for Seaside based on Cytoscape.js.
- ChartJs - Seaside binding of ChartJs to display and interact with charts.
- CodeParadise - Run Pharo code inside a tiny SqueakJS VM and manipulate the Dom via WebComponents and MVP
- Ethel - Lightweight framework for composing web service clients.
- HighchartsSt - A Highcharts Js API wrapper for Pharo Smalltalk.
- MaterialDesignLite - Binding google's Material Design Lite project for Seaside.
- OpenAPI - A pharo implementation of [OpenAPI](https://www.openapis.org) 3.0.1, a machine-readable interface files specification for describing, producing, consuming, and visualizing RESTful web services.
- Parasol - Testing web apps in Smalltalk using Selenium WebDriver.
- PharoJS - Develop in Pharo, Run on Javascript.
- Pragma-Validators - Pragma validators for Pharo accessors, inspired by Java Bean Validation annotations.
- PrismCodeDisplayer - Code displayer for Seaside base on Prism.js project.
- RenoirSt - A DSL enabling programmatic cascading style sheet generation for Pharo Smalltalk.
- Seaside - Framework to develop sophisticate web applications in Smalltalk.
- SeasideBootstrap - Binding to Twitter's Bootstrap project for Seaside.
- Teapot - Micro web framework for Pharo Smalltalk.
- Teapot-ACL - A minimalistic role-based access control list for Teapot authorization.
- Willow - Web Interaction Library that eases the burden of creating AJAX-based web applications.
- Zinc - HTTP components to deal with HTTP networking in Smalltalk.
- Amber - Amber is an implementation of the Smalltalk language that runs on top of the JavaScript runtime. It uses Pharo as reference implementation.
- WebST - A framework for building Web Components using PharoJS
- WebST - A framework for building Web Components using PharoJS
-
Algorithms
- StableMarriage - A solver for the stable marriage problem written in Pharo.
- DeepTraverser - Library for traversing object graphs (managing cycles).
- FuzzySearcher - Simplified implementation of ambiguous matching algorithm based on Baeta-Yates, R.A., Gonnet, G.H., Wu, S. and Manber, U.
-
Code generation
- PharoCodeGenerator - Generate Pharo code based on ASTs.
- PharoJS - Converts Pharo code to Javascript.
- PlainPharoCode - Instead of using String, use Pharo code to define code to generate.
- Python3Generator - A toolkit to generate Python 3 source code from Pharo.
- VisitorGenerator - Generates basic visitor & visit methods for any Pharo classes hierarchy.
- XML-XMLWriter - Block-based API for XML generation for Pharo.
-
Code quality
- Chanel - A cleaner for Pharo Smalltalk code.
- QualityAssistant - A live feedback code quality tool for Pharo.
- Rules - Rules is a small model of rules that a model should not violate. It is able to compute the technical debt for a set of violations.
-
Command line
-
Component-Based Architectures
- Molecule - A component oriented framework for Pharo.
-
Data interexchange format
- Arff - An Arff generator written in Pharo, Arff is the dataformat used by weka.
- CSV - NeoCSV is an elegant and efficient standalone Smalltalk framework to read and write CSV converting to or from Smalltalk objects.
- Fuel - A general-purpose object serialization framework for Squeak and Pharo, developed in Pharo.
- msgpack-smalltalk - MessagePack serialization library.
- NeoJSON - Framework to handle JSON in Pharo.
- NeoUniversalBinaryJSON - An implementation of [Universal Binary JSON](http://ubjson.org) (UBJSON) for Pharo.
- pharo-ical - iCalendar import and export.
- Pillar - Markup syntax and associated tools to write and generate documentation, books and slides.
- Protobuf - [Google's protocol buffers](https://developers.google.com/protocol-buffers/) support for Pharo Smalltalk.
- SIXX - XML serializer/deserializer.
- STON - The Smalltalk Object Notation, similar to JSON but for Smalltalk.
- Tabular - Support of common spreadsheets formats (CSV, XLSX, ODS).
- XML-Pastell - An XPath-like DSL that makes navigation in XML DOM trees easier.
- XML-Parser - Official XML parser maintained by Pharo community.
- XML-Support - XML Support for Pharo.
- XML-XMLParserStAX - Official XML pull parser for XMLParser maintained by Pharo community.
- XML-XMLParserHTML - Official parsers for HTML that convert possibly malformed HTML into well-formed XML maintained by Pharo community.
- XML-XPath - Official XPath library for Pharo.
- Soup - HTML Scraping library for Pharo.
-
Deployment
- Docker Pharo Runtime - Docker image for Pharo
- Docker Pharo VM - Docker image for Pharo VM
-
Documents Generation
- Artefact - Artefact is a framework to generate PDF documents in Pharo.
-
Interaction
- GitBridge - Access resources and information from the git repository containing your project.
- OSC - An open sound control library.
- TUIO - A driver for TUIO.
- PharoStreamDeck - Elgato Stream Deck utils for Pharo.
-
Language extensions
-
LaTeX
- Citezen - A bibtext parser and tool suite.
- SmalltalkEnv - LaTeX environment for Smalltalk.
-
Meta-modelling
- Magritte - A fully dynamic meta-description framework.
-
Pharo images management
- fari.sh - Fresh, ready-to-hack Pharo images.
- Pharo Launcher - Official tool to manage your pharo images and download new ones.
- Pharo Install - A command-line tool for installing Pharo Smalltalk packages into fresh images.
-
Projects management
- Chrysal - How to manage application configuration.
- Cruiser - Application packager for Pharo.
- DeploymentUtility - A project providing a facade to help to deploy pharo projects.
- Filetree - A file-per-method export format of Pharo source code allowing one to version code with git, svn, fosil, etc.
- Metacello - A package management system for Pharo.
- SmalltalkCI - Framework for testing Smalltalk projects on Linux, macOS, and Windows and on Travis CI, AppVeyor, and GitLab CI/CD.
- Tonel - A file-per-class export format of Pharo source code allowing one to version code with git, svn, fosil, etc.
- pharo-server-tools - Tools to deploy and manage headless Pharo servers from the command line.
-
Scientific libraries
- BioSmalltalk - Bioinformatics Library for Pharo Smalltalk.
- CORMAS - CORMAS (Common-pool Resource and Multi-Agent Simulation) is a agent based model library in Smalltalk.
- GADM - A browseable GADM world tree for Pharo Smalltalk.
- Geometry - A library for representing basic geometry elements and doing computations with them.
- HoneyGinger - a fluid dynamics simulation engine focused on interactivity and visualization
- Kendrick - Domain-Specific Modeling for Epidemiology.
- MatplotLibBridge - A bridge to Python's Matplotlib.
- Mathemagics - Symbolic algebra package that handles mathematical expressions using simplification, derivatives, functions, variables, etc. Calculator included. Parser supports infix notation.
- Polymath - Set of mathematical tools for Pharo. Similar to numpy in Python.
- RMapViewer - A Viewer for chemical reaction maps.
- StNER - Interface to the Stanford Named Entity Recognizer.
- Units - A simple package for Units management in Pharo.
- Z3950 - ZOOM FFI Client for Z39.50 Protocol.
- Kendrick - Domain-Specific Modeling for Epidemiology.
-
Software / data analysis
- CCBC - Code Critics Bar Chart for Pharo Smalltalk.
- DesignInfo - Collects package metrics (SLOC).
- Moose - Platform for software and data analysis.
- PetitParser - Petit Parser is a framework for building parsers using objects.
- PostgreSQLParser - A parser for PostgreSQL queries and Plpg/SQL source code.
- Gitminer - A tool to mine Git-based software repositories.
-
Sound
- Pharo-LibVLC - FFI binding to [libVLC](https://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc.html).
- PharoSound - Sound facilities for Pharo.
-
System interaction
- KerasBridge - Bridge between the Keras library for neural network and Pharo
- LibUSB - A FFI binding to libusb C library.
- OSSubprocess - Allows one to spawn Operating System processes from within Pharo language.
- Pharo-OS-Linux-Ubuntu - Support for Ubuntu operating system for Pharo.
- Pharo-OS-OSX - Support for OSX operating system for Pharo.
- Pharo-OS-Unix - Support for Unix operating system for Pharo.
- Pharo-OS-Raspbian - Support for Raspbian operating system for Pharo.
- Pharo-OS-Windows - Support for Windows operating system for Pharo.
- ProcessWrapper - Plugin + Wrapper code for Windows process execution.
- PythonBridge - A bridge between Python and Pharo. This bridge allows to seamlessly use Python libraries in Pharo
- SystemInteraction - A project to simplify system interactions in Pharo providing a facade to OSSubProcess and OSWindSubProcess and some pre-made commands.
-
Tutorials
- Exercism Pharo Smalltalk - Solve problems with TDD at [Exercism.io](https://exercism.io/) and receive mentor feedback.
-
Virtual Machine
- Polyphemus - Framework allowing to analyse/query/modify Pharo images without executing them.
-
Web API clients
- DiscordSt - DiscordSt is a client for Discord written in Pharo.
- Elasticsearch-Pharo-API - Elasticsearch-Pharo-API is a client for [Elasticsearch](https://www.elastic.co/elasticsearch/) written in Pharo.
- Jira-Pharo-API - Jira-Pharo-API is a client for [Jira](https://www.atlassian.com/software/jira) written in Pharo.
-
Geography
Programming Languages
Categories
Data Structures
24
Web
22
Graphics
20
Data interexchange format
19
Databases
16
Scientific libraries
14
Miscellaneous
14
IDE
13
Artificial Intelligence and Machine Learning
12
System interaction
11
Books
10
Testing
8
Network protocols
8
Projects management
8
Loggers
7
Code generation
6
Software / data analysis
6
Videos
5
Datasets
4
Interaction
4
Pharo images management
3
Code quality
3
IOT
3
Algorithms
3
Command line
3
Geography
3
Language extensions
3
Web API clients
3
Deployment
2
LaTeX
2
Sound
2
Virtual Machine
1
Documents Generation
1
Meta-modelling
1
Component-Based Architectures
1
Tutorials
1
Sub Categories
Keywords
pharo
162
smalltalk
84
pharo-smalltalk
38
gemstone
7
api
6
squeak
6
machine-learning
5
seaside
5
collection
4
ide
4
visualization
3
deployment
3
parser
3
statistics
3
mit-license
3
data-science
3
postgresql
3
database
3
moose
3
http
3
rest-api
3
roassal
2
tool
2
data-analysis
2
collections
2
tdd
2
sunit
2
bdd
2
server
2
containers
2
component
2
ui
2
framework
2
docker
2
chart
2
rest
2
python
2
persistence
2
dsl
2
mapping
2
serialization
2
json
2
sqlite3
2
webframework
2
telepharo
2
teapot
2
natural-language-processing
2
webapplication
2
javascript
2
git
2