awesome-pharo
A collection of awesome Pharo libraries, tools, frameworks and software.
AI summary
Development toolkit
A curated collection of Pharo libraries, tools, and frameworks for various software development tasks
- stars
- 287
- forks
- 30
- watching
- 26
- awesome list
- 1
- entries
- 230
What's in the list
230 links in 36 sections, with live GitHub stats.activeno commit in 2y
Algorithms
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
StableMarriage
A solver for the stable marriage problem written in Pharo
Artificial Intelligence and Machine Learning
Keras Wrapper
Allows to use 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 in Pharo
Books
- 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
- SquareBracketAssociates
Organisation grouping repositories for various books around Pharo
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
clap-st
Command-line argument parsing for Pharo
Launchpad
A command-line interface to start, list, and explain the applications available within the image
Pharo server tools
Tools to deploy and manage headless Pharo servers from the command line
pi
CLI tool to install Pharo Smalltalk packages
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 (UBJSON) for Pharo
pharo-ical
iCalendar import and export
Pillar
Markup syntax and associated tools to write and generate documentation, books and slides
Protobuf
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-XMLWriter
Official XML generation framework maintained by Pharo community
XML-XPath
Official XPath library for Pharo
Soup
HTML Scraping library for Pharo
Data Structures
- Array2D
A grid like structure
BTree
Not a binary tree but a BTree implementation
DataFrame
Tabular data structures for data analysis
Dictionary with lookup
A dictionary with lookup
Grid
A grid implementation
Iterators
Implementation of the iterator design pattern
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
OrderPreservingDictionary
Order preserving dictionary
PropertyEnvironment
A dictionary of properties with a lookup in ancestors (also called environment in other languages)
Stack
A stack implementation
Trie
a structure for retrieval information
- UniqueOrdered
Some collections to have unique ordered elements
Databases
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
Datasets
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
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
Graphics
Alexandrie
FFI bindings and a 2D canvas for Pharo based on Cairo, Freetype and Harfbuzz
Bloc
Next generation low-level UI infratructure and framework for Pharo
ConstraintsLayout
A constraints layout for morphic using Cassowary as its backend
Colors Extensions
Extensions to Pharo colors
GraphViz
Pharo GraphViz binding
GEXF
Pharo model and exporter
Jun
A 3D graphics library with chemoinformatics extensions
MaterialColors
Project implementing Material Design recommandations on colors
MermaidPharo
Pharo support for
PlantUMLPharoGizmo
Pharo support for PlantUML
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: )
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
Toplo
A widget framework on top of Bloc
Woden
A 3D graphics engine for Pharo
IDE
Calypso
Pharo system browser
CollectionExtensions
Extensions for Pharo collections API
Dawn theme
A warm dark theme for Pharo
Glamorous Toolkit
Moldable IDE for 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
Smalltalk Vim Mode
Vim Mode for Playground, System Browser, Debugger in Pharo
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
Interaction
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
Language extensions
LaTeX
Citezen
A bibtext parser and tool suite
SmalltalkEnv
LaTeX environment for Smalltalk
Loggers
Beacon
A logger using beacon
TinyLogger
A really small logger for Pharo applications
Bell
An observability library written in Smalltalk
Meta-modelling
Magritte
A fully dynamic meta-description framework
Miscellaneous
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
- Dr Geo
A software to design & manipulate interactive geometric sketches. It helps kids to explore geometry
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
- PharoFamily
PDF image showing a part of Pharo ecosystem
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
Network protocols
Ansible
An AMQP client for Pharo
- 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
JRPC
Yet another implementation for Pharo Smalltalk
Stargate
A library supporting the creation of HTTP based RESTful APIs
Superluminal
Building blocks for creating HTTP requests and API clients
WebSocket with Zinc
The WebSocket feature of the Zinc HTTP Components framework
Zodiac
(built-in) - Zodiac is an open-source Smalltalk framework implementing TLS/SSL secure as well as regular socket streams
Pharo images management
fari.sh
Fresh, ready-to-hack Pharo images
Pharo Install
A command-line tool for installing Pharo Smalltalk packages into fresh images
Pharo Launcher
Official tool to manage your pharo images and download new ones
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
pharo-server-tools
Tools to deploy and manage headless Pharo servers from the command line
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
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
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
Sound
Pharo-LibVLC
FFI binding to
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
Testing
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
StateSpecs
Assertions library based on should expressions
Tutorials
Exercism Pharo Smalltalk
Solve problems with TDD at and receive mentor feedback
VCS
Iceberg
Set of tools to handle git repositories from a Pharo image
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 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
Virtual Machine
Polyphemus
Framework allowing to analyse/query/modify Pharo images without executing them
Web
- Amber
Amber is an implementation of the Smalltalk language that runs on top of the JavaScript runtime. It uses Pharo as reference implementation
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 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
TelescopeCytoscape
Interactive visualization project for Seaside based on Cytoscape.js
Willow
Web Interaction Library that eases the burden of creating AJAX-based web applications
Zinc
HTTP components to deal with HTTP networking in Smalltalk
Web API clients
DiscordSt
DiscordSt is a client for Discord written in Pharo
Elasticsearch-Pharo-API
Elasticsearch-Pharo-API is a client for written in Pharo
Jira-Pharo-API
Jira-Pharo-API is a client for written in Pharo
Nothing in this list matches your filter.
Featured in 1 awesome list
Each link jumps to the spot where the list mentions awesome-pharo.