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

awesome-pharo

A collection of awesome Pharo libraries, tools, frameworks and software.
https://github.com/pharo-open-documentation/awesome-pharo

Last synced: 3 days ago
JSON representation

  • 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

    • 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 / NaiveBayesClassifier - Implementation of a multinomial Naive Bayes classifier in Pharo that can be used for simple spam detection and sentiment analysis.
    • 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.
  • 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.
    • Stash - A source-code serializer for Pharo.
    • Stash - A serializer that convert instances into code.
  • 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
    • clap-st - Command-line argument parsing for Pharo.
  • Component-Based Architectures

    • Molecule - A component oriented framework for Pharo.
  • 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.
    • Soil - Object oriented database library. Persistency to disk with transactions and search indexes.
    • pharo-ado - Enable data persistence in Pharo by using ActiveX Data Objects (ADO) on Microsoft Windows and external DBMS.
  • 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.
    • Soup - HTML Scraping library 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.
    • 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.
  • Data Structures

    • Array2D - A grid like structure.
    • UniqueOrdered - Some collections to have unique ordered elements.
    • AVL Tree
    • BTree - Not a binary tree but a BTree implementation.
    • DataFrame - Tabular data structures for data analysis.
    • PropertyEnvironment - A dictionary of properties with a lookup in ancestors (also called environment in other languages).
    • 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.
    • Array2D - A grid like structure.
    • 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
  • Deployment

  • Documents Generation

    • Artefact - Artefact is a framework to generate PDF documents in Pharo.
  • Geography

    • GeoTools - Geographic Tools as Coordinates, Kinematics and Geodesic utilities for GIS.
    • GeoView - Views to display and interact with geographical objects and cartographic layers for UI.
    • PharoOWS - OGC Web Services (OWS) support for Pharo.
  • Graphics

    • 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.
    • GraphViz - Pharo GraphViz binding.
    • 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.
    • 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.
    • Bloc-Serialization - Bloc serialization features to store/unstore BlElements.
    • CSSParser - A library that provides an object model and tools to read, interpret, and manipulate CSS stylesheets (including .css files).
    • Toplo-Serialization - Toplo serialization features to store/unstore ToElements.
  • 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.
    • OpenSmock - A collection of tools and workshops designed to streamline the development of applications - especially user interfaces (UI).
    • Smalltalk Vim Mode - Vim Mode for Playground, System Browser, Debugger 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.
  • IOT

    • 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.
    • HID - An implementation of the Human Interface Device protocol with a driver to be used with libusb.
  • 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.
    • Talents - Implementation of Talents in Pharo. Allowing us to extend the behaviour in single instances.
  • LaTeX

  • Loggers

    • Beacon - A logger using beacon.
    • TinyLogger - A really small logger for Pharo applications.
    • 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.
    • SystemLogger - An extensible object logger.
  • Meta-modelling

    • Magritte - A fully dynamic meta-description framework.
  • 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.
    • Ansible - An AMQP client for Pharo
    • JRPC - Yet another [JSON-RPC 2.0](https://www.jsonrpc.org/specification) 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
    • Zodiac - in) - Zodiac is an open-source Smalltalk framework implementing TLS/SSL secure as well as regular socket streams.
    • 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.
  • Pharo images management

    • Pharo Install - A command-line tool for installing Pharo Smalltalk packages into fresh images.
    • fari.sh - Fresh, ready-to-hack Pharo images.
    • Pharo Launcher - Official tool to manage your pharo images and download new ones.
  • Projects management

    • pharo-server-tools - Tools to deploy and manage headless Pharo servers from the command line.
    • 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.