whatisgithub

What is bacwn?

whilo/bacwn — explained in plain English

Analysis updated 2026-07-18 · repo last pushed 2013-08-29

ClojureAudience · developerComplexity · 3/5DormantSetup · moderate

In one sentence

A Clojure library that brings Datalog, a declarative query language like SQL, but for in-memory data, to Clojure and ClojureScript apps.

Mindmap

mindmap
  root((repo))
    What it does
      Datalog queries
      Declarative rules
      Pattern matching
    Tech stack
      Clojure
      ClojureScript
      Datalog
    Use cases
      Query nested data
      Logical reasoning
      Recommendation matching
    Audience
      Clojure developers
      Backend engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Query complex nested Clojure data structures declaratively instead of writing loops and conditionals.

USE CASE 2

Implement logical reasoning over facts and rules, like matching projects to reviewers with the right expertise.

USE CASE 3

Build a recommendation engine that matches customer preferences against available products.

USE CASE 4

Search in-memory datasets for patterns the way you'd use SQL against a database.

What is it built with?

ClojureClojureScriptDatalog

How does it compare?

whilo/bacwnbenfleis/throttlergardnervickers/local-meetups
LanguageClojureClojureClojure
Last pushed2013-08-292015-01-282016-02-04
MaintenanceDormantDormantDormant
Setup difficultymoderateeasyhard
Complexity3/52/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Alpha-stage library, the ClojureScript version doesn't fully work yet and the API may still change.

Copy-paste prompts

Prompt 1
Show me how to write a basic Datalog query with Bacwn to filter a Clojure data structure.
Prompt 2
Help me convert a nested loop with conditionals in my Clojure app into a Bacwn Datalog query.
Prompt 3
Explain the difference between using Bacwn in Clojure versus ClojureScript, including current limitations.
Prompt 4
Walk me through defining rules in Bacwn to match records based on relationships between them.

Frequently asked questions

What is bacwn?

A Clojure library that brings Datalog, a declarative query language like SQL, but for in-memory data, to Clojure and ClojureScript apps.

What language is bacwn written in?

Mainly Clojure. The stack also includes Clojure, ClojureScript, Datalog.

Is bacwn actively maintained?

Dormant — no commits in 2+ years (last push 2013-08-29).

How hard is bacwn to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is bacwn for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.