Awesome Lists

awesome-pharo

by pharo-open-documentation

awesome listpushed almost 2 years ago

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
View on GitHubtwitter.com/PharoOpen

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/pharo-open-documentation/awesome-pharo/links.svg)](https://awesome.facts.dev/awesome/pharo-open-documentation/awesome-pharo)
HTML
<a href="https://awesome.facts.dev/awesome/pharo-open-documentation/awesome-pharo"><img src="https://awesome.facts.dev/shield/pharo-open-documentation/awesome-pharo/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/pharo-open-documentation/awesome-pharo/links.svg

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

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

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

  • GitBridge

    Access resources and information from the git repository containing your project

  • OSC

    An open sound control library

  • TUIO

    A driver for TUIO

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

  • Buoy

    A complement to Pharo

  • I18N

    Internationalization support for applications

  • Talents

    Implementation of Talents in Pharo. Allowing us to extend the behaviour in single instances

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

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

VCS

  • Iceberg

    Set of tools to handle git repositories from a Pharo image

Videos

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

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.