All Projects → dhershman1 → kyanite

dhershman1 / kyanite

Licence: MIT license
A small purely functional library of curried functions, with great piping possibilities!

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to kyanite

Cs.2click
🔊 A Better Audio Router for a Modular System.
Stars: ✭ 7 (-73.08%)
Mutual labels:  utility, modular
OP1GO
Ultraportable backups for Teenage Engineering's OP-1
Stars: ✭ 34 (+30.77%)
Mutual labels:  utility
linearmouse
🖱 The mouse and trackpad utility for Mac.
Stars: ✭ 1,151 (+4326.92%)
Mutual labels:  utility
tableize
Turn lists into tables with ease
Stars: ✭ 12 (-53.85%)
Mutual labels:  utility
mpu
Martins Python Utilities - Stuff that comes in Handy
Stars: ✭ 47 (+80.77%)
Mutual labels:  utility
the movie app open source
🎬 an app that lists movies in theaters and that will be released, and their respective actors using the api of the movie database, made with Flutter using Modular and MobX
Stars: ✭ 29 (+11.54%)
Mutual labels:  modular
MVI-Clean-Architecture
MVI + Clean Architecture + Best Practices | Example of Clean Architecture of Android app using MVI design pattern with Jetpack and popular libraries
Stars: ✭ 50 (+92.31%)
Mutual labels:  modular
light
The Node Framework for the Next Generation.
Stars: ✭ 29 (+11.54%)
Mutual labels:  light
goroutines
provides utilities to perform common tasks on goroutines
Stars: ✭ 19 (-26.92%)
Mutual labels:  utility
cra-tailwindcss-in-js
Integrate Tailwind CSS in a Create React App setup using css-in-js solutions
Stars: ✭ 35 (+34.62%)
Mutual labels:  utility
Repo
一个基于shell + gradle开发的效率工具,用来优化模块化/组件化分仓后带来的编译和调试痛点,提升开发效率
Stars: ✭ 28 (+7.69%)
Mutual labels:  modular
homify
🏡 Open-source home automation / smarthome platform running on PHP (Laravel).
Stars: ✭ 45 (+73.08%)
Mutual labels:  modular
flow-synth
*UNMAINTAINED* A modular digital audio workstation for synthesis, sequencing, live coding, visuals, etc
Stars: ✭ 36 (+38.46%)
Mutual labels:  modular
TestCards
A simple test pattern generator.
Stars: ✭ 46 (+76.92%)
Mutual labels:  utility
grizzly
Extra utilities for Bear 🐻
Stars: ✭ 20 (-23.08%)
Mutual labels:  utility
magic-home
A .NET library that imports functionality from the Magic Home app, allowing control of smart lights.
Stars: ✭ 23 (-11.54%)
Mutual labels:  light
Translucide
CMS efficient, léger, simple à prendre en main, customisable et écoconçu !
Stars: ✭ 31 (+19.23%)
Mutual labels:  light
purity
Oh-My-ZSH prompt inspired by robbyrussell theme + pure prompt
Stars: ✭ 14 (-46.15%)
Mutual labels:  pure
lunar-theme
🌓 A minimal dark and light theme for Visual Studio Code. Handpicked colours, easy on the eyes, and perfect for coding in the day/night.
Stars: ✭ 24 (-7.69%)
Mutual labels:  light
duxjs
Componentized redux framework
Stars: ✭ 17 (-34.62%)
Mutual labels:  modular

Kyanite Logo


A light weight functional JavaScript library that only depends on itself.

license:mit Npm Version Build Status Coverage Coverage


Standard JS

Why The Name Kyanite?

Because I think mineral names are cool

Contents

Philosophy

The goal for Kyanite is to be stripped down, light weight, and intuitive. The idea is to be performant and easy to use in a functional setting, making it simple to build reusable functions in your code base with powerful and organized algorithmic pipes. Ultimately, Kyanite’s continued growth and improvement will support the growth and improvement of the JavaScript community

Key Features

  • Purely Functional - This was a main focus for the project. I wanted it to be an easy to use, functional system while also being completely pure by making use of piping and transducers to boost performance.
  • Single type utility functions - Theoretically, all of the functionality is based around accepting a single data type, doing what it does, and giving you back a result, thus making it reliable, stable, and lightweight.
  • Everything is curried! Setup static in one spot and then pass the rest of the dynamic data in later.
  • Data last ideology

How To

With a CDN

<!-- It is recommended to replace the @latest with a strict version number for production -->
<script src="https://cdn.jsdelivr.net/npm/kyanite@latest/dist/kyanite.min.js"></script>
<!-- To use the debug friendly kyanite simply remove .min from the filename -->
<script src="https://cdn.jsdelivr.net/npm/kyanite@latest/dist/kyanite.js"></script>
<script>
  const K = kyanite

  K.isEmpty({})
</script>

Or installing with npm i kyanite and then:

Standard module system

// This will use the module path in the package.json (src/index.js)
import * as K from 'kyanite'
// However if you want to grab the dev version
import * as K from 'kyanite/dist/kyanite.js'

Common JS

// For the prod minified version
const K = require('kyanite')
// For the dev/debug friendly version
const K = require('kyanite/dist/kyanite.js')

Local copy script tag

<!-- To use the prod minified version -->
<script src="/path/to/dist/kyanite.min.js"></script>
<!-- To use the dev/debug friendly version -->
<script src="/path/to/dist/kyanite.js"></script>
<script>
  const K = kyanite

  K.isEmpty({})
</script>

Testing

Kyanite follows the tap setup using the tape testing suite.

To run the tests:

  • git clone the repo
  • cd into the repo folder
  • Run npm i
  • Run npm t

Credit

A lot of the if not most of the inspiration for this library came from 2 libraries I follow closely, Primarily most of it stems from:

  • foreword by Abstract Tools which is a very nice and easy to use library developed by a close friend and mentor. This is where a lot of functionality ideas came from I can't recommend it enough.
  • Ramdajs by Ramda a beautiful and feature packed library where the original idea started
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].