All Projects → wotpp → wotpp

wotpp / wotpp

Licence: MPL-2.0 license
A small macro language for producing and manipulating strings.

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
Meson
512 projects
KakouneScript
24 projects
python
139335 projects - #7 most used programming language
Vim Script
2826 projects

Projects that are alternatives of or similar to wotpp

pixie
Tiny template functions.
Stars: ✭ 14 (-81.33%)
Mutual labels:  fast, small
core
🌈 light, fast, and easy to use, dependencies free javascript syntax highlighter, with automatic language detection
Stars: ✭ 40 (-46.67%)
Mutual labels:  fast, small
dowels
🔨 a tiny but powerful javascript library that performs client-side routing, templating, and REST API communication to help you get your single-page web applications running in seconds
Stars: ✭ 13 (-82.67%)
Mutual labels:  fast, small
Candyview
Implement any RecyclerView in just 1 Line. CandyView handles everything for you.
Stars: ✭ 15 (-80%)
Mutual labels:  fast, small
Server Manager
This repository holds the IntISP Interface. It can be rebuilt to interface with any other hosting panel.
Stars: ✭ 31 (-58.67%)
Mutual labels:  fast, small
core
🚀Fast, 💎Lightweight Angular alternative with the same modern API thats compile directly to WebComponents
Stars: ✭ 49 (-34.67%)
Mutual labels:  fast, small
Wondercms
WonderCMS - fast and small flat file CMS (5 files)
Stars: ✭ 330 (+340%)
Mutual labels:  fast, small
Wolff
🐺 Lightweight and easy to use framework for building web apps.
Stars: ✭ 203 (+170.67%)
Mutual labels:  fast, small
koa-better-router
❤️ Stable and lovely router for `koa`, using `path-match`. Foundation for building powerful, flexible and RESTful APIs easily.
Stars: ✭ 88 (+17.33%)
Mutual labels:  fast, small
logquacious
Logquacious (lq) is a fast and simple log viewer.
Stars: ✭ 55 (-26.67%)
Mutual labels:  fast
greptile
Fast grep implementation in python, with recursive search and replace
Stars: ✭ 17 (-77.33%)
Mutual labels:  fast
rust-sthash
Very fast cryptographic hashing for large messages.
Stars: ✭ 61 (-18.67%)
Mutual labels:  fast
tinypool
🧵 A minimal and tiny Node.js Worker Thread Pool implementation (38KB)
Stars: ✭ 452 (+502.67%)
Mutual labels:  fast
hyperlink
Very fast link checker for CI.
Stars: ✭ 85 (+13.33%)
Mutual labels:  fast
httpit
A rapid http(s) benchmark tool written in Go
Stars: ✭ 156 (+108%)
Mutual labels:  fast
stone paper scissor defeator using opencv keras
In this repository i tried to replicate a cool project by a japanese scientist who made a machine which had 100 % accuracy in defeating humans in the game of stone-paper and scissors
Stars: ✭ 22 (-70.67%)
Mutual labels:  fast
STYLER
Official repository of STYLER: Style Factor Modeling with Rapidity and Robustness via Speech Decomposition for Expressive and Controllable Neural Text to Speech, INTERSPEECH 2021
Stars: ✭ 105 (+40%)
Mutual labels:  fast
strsim
string similarity based on Dice's coefficient in go
Stars: ✭ 39 (-48%)
Mutual labels:  strings
natural
Fastest Framework for NodeJS. Written in pure ES6+
Stars: ✭ 30 (-60%)
Mutual labels:  fast
docker-alpine-wkhtmltopdf
wkhtmltopdf alpine docker container with headless qt patches
Stars: ✭ 150 (+100%)
Mutual labels:  small

logo

Wot++

Wot++ is a language for writing documents that allows you to build up your own library of abstractions or use those made by others.

Wot++ has some interesting features like meta-programming, the ability to invoke a shell, bit-level manipulation, recursion and conditionals.

c++ license code size issues discord

Getting Started & Reference

See the introduction here and see the reference here.

Example

#[ Setup some macros. ]
let \n "\n"
let \n2 "\n\n"

let #(x) "# " .. x .. \n2
let ##(x) "## " .. x .. \n2
let ###(x) "### " .. x .. \n2
let ####(x) "#### " .. x .. \n2
let #####(x) "##### " .. x .. \n2

let >(x) "> " .. x .. \n2

let *(x) " *" .. x .. "* "
let **(x) " **" .. x .. "** "

let link(name, url) " [" .. name .. "](" .. url .. ") "


#[ Our actual document... ]

#("Hello, World!")
###("A short example of wot++ code.")

>("Here's a link: " .. link("Discord", "https://discord.gg/hQ7yS9dxcp"))

"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dictum volutpat lacus,
sollicitudin pellentesque tellus viverra non. Phasellus est lorem, porta ut metus vitae,
ultricies semper lacus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices
posuere cubilia curae; Suspendisse sollicitudin egestas tristique. Nullam condimentum
vehicula mi, eu hendrerit libero condimentum posuere. Suspendisse fringilla lacus nulla,
ut finibus nisi vulputate consequat. Vestibulum efficitur ultricies dolor, a iaculis diam
interdum ut. Nunc rhoncus, lorem mattis porttitor luctus, ligula tellus vulputate arcu,
vitae blandit nisl ipsum ac augue. Nulla a ex eget risus tristique consequat nec ac lacus.
Phasellus blandit massa non iaculis finibus. Quisque suscipit pharetra iaculis. Maecenas
ac turpis est. Aenean id est vitae mi facilisis luctus ut a nulla. Mauris facilisis, sem
eu rhoncus iaculis, justo erat efficitur purus, et dictum mi lorem sit amet neque."

Prerequisites

  • A C++17 compliant compiler. (GCC & Clang work)
  • Meson & Ninja
  • libasan (optional, required for sanitizer support)
  • Python3 (optional, required for running test suite)

Build & Run

For distro specific instructions, see: install.md

$ meson build
$ ninja -C build

You can specify the compiler and linker to use through environment variables:

$ CXX=clang++ CXX_LD=lld meson build

Supported flags:

-Dnative=true               # enable host machine specific optimisations
-Dsanitizers=true           # enable sanitizers (undefined,address)
-Dprofile=true              # enable profiling support (uftrace etc.)
-Ddisable_run=false         # disable the `run` intrinsic for security purposes
-Dbuildtype=debugoptimised  # enable symbols

List of built-in Meson options can be found here.

An example:

$ meson -Dsanitizers=true -Dprofile=true build

If you already have configured a build directory, you'll need to add --reconfigure:

$ meson --reconfigure -Dsanitizers=true -Dprofile=true build

To run the tests:

$ ninja -C build test

Installation

For distro specific instructions, see: install.md

$ cd build/
$ meson install  # requires root perms (sudo/su/doas)

If you want to specify a custom install directory:

$ cd build/
$ meson configure --prefix=/usr/local/
$ DESTDIR=/ meson install

Fuzzing with AFL

$ CC=afl-gcc CXX=afl-g++ meson build
$ ninja -C build
$ mkdir findings
$ afl-fuzz -i tests -x tests/wotpp.dict -o findings ./build/w++ @@

Cool Projects

wot-goodies

A collection of interesting snippets of Wot++ code.

wotpp-hs

A reimagining of Wot++ written in Haskell.

waas

A site where you can upload wot++ files and download the compiled output.

Acknowledgements

Thanks, in no particular order:

And everyone else who I may have failed to mention over the years.

History

See the timeline here.

License

This project uses the MPL-2.0 license. (check LICENSE)

Progress & Discussion

You can join the discord server in order to follow progress and/or contribute to discussion of the project. (https://discord.gg/hQ7yS9dxcp)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].