Our projects

Here are some projects we are making or helping to develop.

Software

Web

40ants/reblocksHas docs. Has tests. Has CI.
A fork of Weblocks Common Lisp web framework
40ants/reblocks-uiNo docs! No tests! No CI!
A set of widget for Reblocks framework, to simplify UI elements creation. Based on Zurb's Foundation and jQuery.
40ants/reblocks-parenscript No docs! No tests! No CI!
An utility to define JavaScript dependencies for Reblocks widgets using Parenscript.
40ants/reblocks-lassNo docs! No tests! No CI!
A helper for Reblocks framework to define CSS dependencies in LASS syntax.
40ants/reblocks-file-server No docs! No tests! No CI!
A file browser for Reblocks Common Lisp web framework.
40ants/reblocks-navigation-widgetNo docs! No tests! No CI!
A widget which changes it's children when user goes to another URL
40ants/reblocks-websocket No docs! No tests! No CI!
Websocket support for Reblocks framework
40ants/reblocks-authNo docs! No tests! No CI!
A system to add authentication to the Reblocks based site.
40ants/reblocks-skeleton No docs! No tests! No CI!
40ants/mito-email-auth No docs! No tests! No CI!
Helper to authenticate website's users by sending them unique code by email.
40ants/cl-link-header No docs! No tests! No CI!
A library to parse content of the Link header
40ants/cl-yandex-metrika No docs! No tests! No CI!
A client library for metrika.yandex.ru

Networking

40ants/cl-telegram-botHas docs. No tests! No CI!
Telegram Bot API for Common Lisp
40ants/trivial-imapHas docs. No tests! No CI!
This is a thin wrapper over post-office library (which is a fork of Franz's cl-imap)
40ants/mailgunHas docs. No tests! No CI!
A thin wrapper to post HTML emails through mailgun.com
40ants/cl-githubNo docs! No tests! No CI!
A thin wrapper around GitHub API. Supports rate limiting and pagination.

Database

40ants/cl-prevalence
In memory database system for Common Lisp
40ants/cl-prevalence-multimaster
This system contains an addon which allows to syncronize multiple cl-prevalence systems state.

IDE

40ants/lem-solarized
Solarized color theme for the Lem editor
40ants/lem-theme
The base for CLOS based themes for Lem editor!
40ants/lem-pareto
A LEM mode to make Lisp code editing more efficient!
40ants/lem-docker
A dockerized Lem, the Common Lisp editor
40ants/sly-package-inferred
A better package inferred systems support for SLY
40ants/log4sly
This package adds a C-c C-g shortcut which allows to setup log4cl's log levels from Emacs.
40ants/recompile
This is a small helper to recompile given Common Lisp system, very useful if you wish to produce high quality software by demolution of all compiler's warnings.

Documentation

40ants/docHas docs. Has tests. Has CI.
Flexible documentation generator for Common Lisp projects.
40ants/lisp-project-of-the-day
Here I'll post notes about Quicklisp projects. Also I publish them on Twitter account svetlyak40wt.
cl-doc-systems

Collection of a dozen examples of different CL documentation systems.

All examples have a similar structure and use GitHub Actions to update GitHub pages.

You will find a short summary on each documentation builder on the main project's site.

40ants/sphinxcontrib-cldomain
A CL domain for sphinx
40ants/cldomain
Helper for sphinxcontrib.cldomain to collect docstrings from Lisp systems.
40ants/gh-pagesHas docs. No tests! Has CI.
A universal tool for updating GitHub Pages for different CI systems.

Tests and CI

40ants/ciHas docs. No tests! Has CI.
Highly opionated Github Actions workflow builder for Common Lisp projects.
40ants/40ants-criticHas docs. No tests! Has CI.
A wrapper around LISP-CRITIC which provides a better interface to analyze ASDF systems and a command-line interface.
40ants/cl-hamcrestHas docs. Has tests. Has CI.

It is implementation of Hamcrest idea in Common Lisp.

It simplifes unittests and make them more readable. Hamcrest uses idea of pattern-matching, to construct matchers from different pieces and to apply them to the data.

Works nicely with Fukamachi's Prove and Rove unittesting frameworks, but could be extended to support other frameworks.

40ants/cl-flamegraphHas docs. No tests! No CI!
A wrapper around SBCL's statistical profiler, to generate FlameGraph charts for Common Lisp programs

Soft

40ants/multitrainer
A math game for children to help them learning multiplication
40ants/barista
A framework for writing OSX menu bar plugins in Common Lisp.
40ants/resume
A data-driven resume builder.
40ants/hacrm
Hacker's CRM – Emacs in the world of CRMs.
40ants/progressor
A tool to track multiple progress bars on distributed machines.
40ants/python-progressor
A Python client library to progressor server
40ants/cl-bitbar
Utils to build BitBar plugins in CommonLisp
40ants/coleslaw-cli
Command line tool to create static sites with Coleslaw.
12forksNo docs! No tests! No CI!

An organization behind 12 Forks site. This is a tool to learn which pulls are waiting for your attention.

Data Processing

40ants/genetic-algorithm Has docs. No tests! No CI!
A generic implementation of Genetic Algorithm.
40ants/teddyHas docs. No tests! No CI!
A data framework for Common Lisp

Utils

40ants/commondoc-markdown Has docs. No tests! Has CI.
Converts Markdown text into CommonDoc nodes and vice versa.
40ants/log4cl-extrasHas docs. Has tests. Has CI.
A few addons for log4cl Common Lisp logging library.
40ants/gen-deps-system No docs! No tests! No CI!
A command line utility to generate ASDF system to improve caching of Common Lisp application packaged into the Docker container.
40ants/cl-infoHas docs. Has tests. Has CI.
An utility which collects information about Common Lisp implementation and systems for bugreports
40ants/html2textHas docs. Has tests. Has CI.
A Common Lisp utility which converts HTML into Markdown text

Distribution

40ants/base-lisp-image
Base image for Common Lisp projects with SBCL or CCL and latest ASDF, Qlot and Roswell
40ants/docker.ubuntu
Docker role for Ansible on Ubuntu 12.04+
40ants/defmain
A helper to simplify command line arguments usage in Common Lisp
40ants/homebrew-soft
Homebrew formulas for our soft.
40ants/docker-haproxy
Docker image for Haproxy with proper logging.
40ants/portable-ca-bundle
A macro to restore Dexador's CA bundle when running LISP binary on a different machine
40ants/cl-project-with-docs
Common Lisp project skeleton generator which uses Sphinx and reStructured text to render nice and readable HTML documentation.
40ants/command-line-template
A template for Common Lisp command line application

Forks

40ants/qlot
A project-local library installer for Common Lisp
40ants/cl-nntp
'( :author "Dimitre Liotev <dl@liotev.com>" :version "1.0" :maintainer "Dimitre Liotev <dl@liotev.com>" :licence "GPL")
40ants/cl-mime
40ants/pygments-cl-repl
Pygments lexer for Common Lisp REPL sessions
40ants/lack
40ants/clack
Web application environment for Common Lisp
40ants/rove
#1=(yet another . #1#) common lisp testing library
40ants/dissect
Common Lisp introspection library for the call stack and restarts
40ants/post-office
Allegro POP, IMAP and SMTP client ported to Common Lisp (with SMTP part not working yet)
40ants/ceramic
Attention! This is a fork.
40ants/mel-base
A versatile mail library for common lisp (active fork of neonsquare/mel-base)
40ants/cl-notebook
A notebook-style editor for Common Lisp
40ants/weblocks-stores
This fork is fixed to work with 40ants/weblocks
40ants/log4cl
Common Lisp logging framework, modeled after Log4J
40ants/todomvc
Helping you select an MV* framework - Todo apps for Backbone.js, Ember.js, AngularJS, and many more
40ants/sigil
A Parenscript to Javascript command line compiler and interpreter.
40ants/ansible-swapfile
A swapfile role for Ansible
40ants/cl-icalendar
An (incomplete) Common Lisp implementation of the iCalendar RFC5545 specification.
40ants/cxml
This fork was made to fix ASDF complaints about secondary systems in cxml.asd file.

Experiments

40ants/therepl
An extension for IPython to switch between modules and evaluate the code from Emacs like we do in Common Lisp.
40ants/parenative
I framework, to write React Native applications in Common Lisp and Parenscript

Obsolete

40ants/log4cl-json

Use log4cl-extras instead.

40ants/wheel-builder
Builds python wheels from given requirements.txt file.
40ants/update-gh-pages

Use gh-pages instead.

Other

40ants/40ants-asdf-system

Provides a class for being used instead of asdf:package-inferred-system in 40ANT systems

40ants/40ants-deploy

Utilities making it easier to use Deploy library.

40ants/40ants-doc-theme-40ants

A custom theme for 40ANTS-DOC documentation builder.

40ants/40ants-openrpc

A set of helpers to start JSON-RPC server based on https://40ants.com/openrpc/ library.

40ants/40ants-pg

Utilities to simplify use of Postgresql in my Common Lisp projects

40ants/40ants.github.com
40ants/build-docs

GitHub action to build documentation for Common Lisp libraries.

40ants/cl-anafanafo

Calculates text width as if it be rendered by a web browser.

40ants/cl-brewer

Brew formula generator for common lisp projects

40ants/cl-plus-ssl-osx-fix

A fix for CL+SSL library paths on OSX needed when you have Intel and Arm64 Homebrew installations. Should be loaded before CL+SSL.

40ants/clack-cors

A Clack middleware to set CORS related HTTP headers.

40ants/clack-prometheus

Clack middleware to serve stats in Prometheus format.

40ants/clack-sitemap

Sitemap generator for your site written in Common Lisp

40ants/cloud-analyzer

A helper to analyze cloud storage usage.

40ants/docs-builder

A generic documentation builder for Common Lisp projects.

40ants/example-clack-app

A demo repository showing how to combine different Clack applications, serve static and add other middlewares.

40ants/github-actions

A web app to render SVG badges with results of GitHub action run.

40ants/heroku-buildpack-common-lisp

https://gitlab.com/duncan-bayne/heroku-buildpack-common-lisp

40ants/homebrew-lake

A thin wrapper to package https://github.com/takagi/lake for OSX using Homebrew.

40ants/humanize-duration

A better date duration representation for Common Lisp programs

40ants/interactive-demo

A demo of interactive image based development in Common Lisp, created specially for YouTube video.

40ants/lack-to-be-deleted

Lack, the core of Clack (this fork is obsolete, all patches were merged)

40ants/linter

A wrapper around SBLINT, which uses defmain for command line parsing

40ants/lisp-hug

An archive of the lisp-hug maillist.

40ants/logging

Functions to configure log4cl for different contexts: REPL, Backend, Command Line Application.

40ants/lw-add-ons

ED Weidz's LispWorks Add Ons

40ants/lw-color-theme

LispWorks Editor color theme addon

40ants/lw-doc

This system originally was written by Edi Weitz.

40ants/lw-vim-mode

Vim Mode for the LispWorks editor.

40ants/ngrok
40ants/openrpc

OpenRPC implementation for Common Lisp

40ants/project-templates

A bunch of Mystic templates to create CL library, web-project, API microservice and CLI command.

40ants/prometheus-gc

Extension for prometheus.cl which collects metrics about garbage collector state.

40ants/quicklisp-client-fix

A fix to make ql:quickload work with package inferred ASDF systems better

40ants/reblocks-prometheus

Addon for monitoring Reblocks web applications

40ants/reblocks-text-editor

A Widget with editor supporting markup and inline preview

40ants/reblocks-typeahead

A Typeahead widget for Reblocks Common Lisp framework.

40ants/reblocks-ui2

Second version of UI toolkit for Reblocks – Common Lisp web-framework (Work In Progress)

40ants/resend

A Common Lisp client library for sending emails via resend.com

40ants/run-tests

GitHub Action to run tests of your Common Lisp library.

40ants/sbcl-shared-library-examples

These examples show how to build so or dll dynamic libraries using SBCL (Common Lisp implementation)

40ants/scrapycl

The web scraping framework for writing crawlers in Common Lisp.

40ants/setup-lisp

GitHub Action to Setup Common Lisp tools

40ants/slon.media
40ants/slynk

Utilities to start SLYNK if needed and to track active connections.

40ants/staticl

Flexible and customizable static site generator with a lot of plugins!

40ants/test-cl-library

New test lib

40ants/tree-shaker

A tree shaker for SBCL

40ants/weblocks

This fork was created to experiment with some refactorings. They are collected in branch "reblocks".

40ants/weblocks-auth

A system to add an authentication to the Weblocks based site.

40ants/weblocks-demo

A demo for Moscow Common Lisp Group's meetup

40ants/weblocks-file-server

A file browser for Weblocks web framework.

40ants/weblocks-lass

A helper for Weblocks framework to define widget dependencies in LASS syntax.

40ants/weblocks-navigation-widget

A widget which changes it's children when user goes to another URL

40ants/weblocks-parenscript

An utility to define JavaScript dependencies for Weblocks widgets using Parenscript.

40ants/weblocks-skeleton

An opionated boilerplate app, which uses Weblocks, Postgres and Docker.

40ants/weblocks-ui

A set of widget for Weblocks framework, to simplify UI elements creation. Based on Zurb's Foundation and jQuery.

40ants/weblocks-websocket

Websocket support for Common Lisp framework weblocks.

Need to tag 50 projects

And Some Art

"Made with Lisp" SVG version of the Logo

SVG version of the great "Made with Lisp" logo by Manfred Spiller:

Made with Lisp logo

It scales nicely and could be used in site's footer. For example, look at our's footer.

There is also [other SVG version](https://github.com/azzamsa/lisp-logo) of this logo by Azzam S.A


Created with passion by 40Ants