Skip to main content

A Clojure-like lisp written for Python

Project description

🐍 basilisp 🐍

A Lisp dialect inspired by Clojure targeting Python 3.

Disclaimer: Basilisp is a project I created to learn about Python, Clojure, and hosted languages generally. It should not be used in a production setting.

PyPI python CircleCI Coveralls github license

Getting Started

Basilisp is developed on GitHub and hosted on PyPI. You can fetch Basilisp using a simple:

pip install basilisp

Once Basilisp is installed, you can enter into the REPL using:

python -m basilisp.main

Basilisp features many of the same functions and idioms as Clojure so you may find guides and documentation there helpful for getting started.

Developing on Basilisp

Requirements

This project uses pipenv to manage the Python virtual environment and project dependencies. pipenv can be installed using Homebrew (on OS X) or pip otherwise:

brew install pipenv
pip install --user pipenv

Additionally, pyenv is recommended to manage versions of Python readily on your local development environment. Setup of pyenv is somewhat more specific to your environment, so see the documentation in the repository for more information.

Performing Type Checking and Linting

Perform type checking with MyPy using:

make typecheck

Perform linting with Prospector:

make lint

The linting artifact will be emitted at the project root as lintout.txt.

Running Tests

Tests can be run using the following command:

make test

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

basilisp-0.1.dev0.tar.gz (49.4 kB view hashes)

Uploaded Source

Built Distribution

basilisp-0.1.dev0-py2.py3-none-any.whl (55.5 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page