Skip to content
Fetish-themed programming language
Branch: master
Clone or download
Latest commit a80e660 Jun 28, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Document using external fetishes Nov 27, 2017
examples Add FizzBuzz example and remove C word Oct 21, 2017
scripts Add top comment to Python script Nov 17, 2017
src Bounds checking for escape map Jun 26, 2018
.gitattributes Tell linguist that .h's in src are C++ Aug 28, 2017
.gitignore Rust support and new fetish - passing local test Aug 31, 2017
.travis.yml Upgrade python instead of installing python3 in macOS/travis Mar 29, 2018
LICENSE Update LICENSE Mar 29, 2018 Update repository URL in README May 22, 2018


Fetlang is a statically typed, procedural, esoteric programming language and reference implementation. It is designed such that source code looks like poorly written fetish erotica

Fetlang is not recommended for production use at this moment, especially in medical or military applications


The following example outputs the arguments given to the executable:

Make Sean moan
Worship Carrie's feet

Bind Amy to Saint Andrew's Cross
    Have Amy hogtie Sean
    If Amy is Carrie's bitch
        Make Slave scream Sean's name
        Make Sean moan


  • Input/output with standard streams and files
  • Statically typed
  • Gendered variables
  • Access previously mentioned variables using pronouns
  • Numbers represented internally as fractions instead of floating point
  • Transpiles to C
  • Confusing English-like syntax and unhelpful error messages
  • Turing complete (See here for a Rule 110 implementation by Kjeld Schmidt)
  • Has a Vim plugin (thanks to Kutsan Kaplan)
  • Can be extended with C, C++, or Rust



  • meson
  • ninja
  • gcc/g++(>=4.9) or clang(>=3.5)

Optional dependencies:

  • boost algorithm(>=1.62)
  • boost filesystem(>=1.62)
  • boost system(>=1.62)

Supported systems:

  • macOS (tested with Travis CI)
  • GNU/Linux (tested with Travis CI)
  • Other modern Unix-like systems

Build Fetlang:

$ git clone
$ cd fetlang
$ meson --buildtype=release src build
$ cd build
$ # Build Fetlang
$ ninja
$ # Run unit tests
$ ninja test

The build will use the version of Boost included in Fetlang by default. If you want to use your system's version of boost, you can run meson configure -Duse_system_boost=true in the build folder

Install Fetlang:

$ sudo ninja install
$ # Make sure it worked
$ fetlang ../examples/hello.fet && ./a.out
Hello World!


Control Flow
Fetish Reference


Fetlang is licensed under the BSDM (BSD, modified) license

You can’t perform that action at this time.