Packages from charm

  • charm/app

    A minimalistic application framework, based on a set of minimalistic components.

  • charm/arraybuffer

    Typed arrays for structs powered by FFI. Gives you the equivalent of UInt8Array, UInt16Array, UInt32Array, Float64Array and ArrayBuffer in JavaScript.

  • charm/cli

    Provides the `charm` cli utility.

  • charm/config

    A configuration hub. Used for accessing configuration information.

  • charm/db

    PDO wrapper, for those that dislike verbose `PDOStatement` methods but also dislike SQL injection.

  • charm/dispatcher

    Creates PSR-7 Server Server Requests for PSR-15 Server Request Handlers and Middlewares from a web server, ReactPHP, Swoole or the command line.

  • charm/error

    Just an interface, a trait and two exception classes. Ancestor of all charm/* exception classes.

  • charm/event

    A simple event emitter interface and a trait with the methods 'on', 'off' and 'emit'.

  • PHP


    Provides a PSR-15 Middleware which traps exceptions and renders a nice error page.

  • charm/exceptions

    Various exception classes with some extra information such as HTTP Status Codes and HTTP Status Messages.

  • charm/fallback-logger

    An error logger designed to be a fallback implementation that logs via the PHP error_log() function or to STDERR with colors

  • charm/fsrouter-middleware

    A router where routes are defined by file system paths.

  • charm/hooks

    A powerful Hooks library, to allow extending and integrating between components.

  • charm/http

    A simple and extendable implementation of PSR-7 HTTP message interfaces

  • charm/i18n

    Provides a Locale and Collator instance based on a Psr\Http\ServerRequestInterface.

  • PHP


    A set of traits for classes that expect to have various common services injeted.

  • charm/lexer

    A fast and powerful streaming lexer for tokenizing formulas, programming languages or written languages.

  • charm/logger

    A simple to use logger. Relies on PSR-3 LoggerInterface.

  • charm/loop

    Identical API for ReactPHP, Swoole, AMP and plain PHP.

  • charm/map

    A hashmap implementation similar to Map in javascript - allowing keys and values of any data type. A small, thorough and efficient hashmap implementation.

  • charm/model

    A data model library. Allows you to declare columns and fields and query them easily using charm/recordset.

  • charm/options

    A generic class for storing options while enforcing option types.

  • charm/orm

    Maps database tables to objects. Doesn't hide SQL.

  • charm/parsing

    A PEG grammar parser, for parsing most context free grammar such as programming languages, database queries and mathematical expressions.

  • charm/phinx

    Integration with the `robmorgan/phinx` migrations library.

  • charm/recordset

    A library for filtering and sorting rows of data from different sources like database tables, arrays, APIs or CSV files.

  • charm/router

    A very fast, tiny single file router implementation. Compatible with PSR Middlware. Takes you from /users/{id:\d+} to `User::profile($id)`. Also in reverse: `$router->url([User::class, 'profile'], 123)` gives you the URL.

  • charm/schema

    A simple to use schema validator allowing you to validate strings, numbers, arrays and objects. Modelled after JSON Schema written as PHP arrays.

  • charm/streams

    Various utilities to work with streams and resources in PHP.

  • charm/table

    An interface for queryable collections such as database tables, arrays, APIs.

  • charm/terminal

    Organized and colorful command line output through a simple markup language.

  • charm/tpl

    An ultra minimalistic, single file template engine. Uses PHP as the template language, but provides the type of template inheritance you see in Blade or Twig.

  • charm/util-closuretool

    Tool to print information about a closure/callback for debugging purposes.

  • charm/util-composerpath

    Easily find the project root path (where composer.json is) without touching the filesystem.

  • charm/util-phpencode

    A small function that encodes compact PHP arrays, like json_encode - but for PHP arrays.

  • charm/util-url

    A library to manipulate URLs.

  • PHP


    A very fast and dependency free library to generate UUIDs (GUIDs) version 1 or 4, sortable UUIDs that validates, or 64 bit unique identifiers according to Twitters' Snowflake, Sonyflake or Instaflake algorithms.

  • charm/vector

    A Vector implementation optimized for O(1) performance in operations like random access reads, pop(), push(), shift() and unshift().

  • charm/database

    Yet another PDO wrapper. Because I don't like to explicitly prepare and execute and fetch every single query. Can use a PDO instance from you, or it makes a new connection standalone.

    Abandoned! See charm/db

  • charm/testing

    A tool for running regression and unit testing with very little scaffolding.

    Abandoned! See frodeborli/themis