All Projects → kowainik → Membrain

kowainik / Membrain

Licence: mpl-2.0
🧠 Type-safe memory units

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Membrain

Length.js
📏 JavaScript library for length units conversion.
Stars: ✭ 292 (+450.94%)
Mutual labels:  library, measure, units
Indriya
JSR 385 - Reference Implementation
Stars: ✭ 74 (+39.62%)
Mutual labels:  measure, units
Unit Api
Units of Measurement API
Stars: ✭ 140 (+164.15%)
Mutual labels:  measure, units
Hyperion Ios
In-app design review tool to inspect measurements, attributes, and animations.
Stars: ✭ 1,964 (+3605.66%)
Mutual labels:  library, measure
Easydeviceinfo
📱 [Android Library] Get device information in a super easy way.
Stars: ✭ 1,698 (+3103.77%)
Mutual labels:  memory, library
Convert Units
An elegant way to convert quantities between different units.
Stars: ✭ 480 (+805.66%)
Mutual labels:  measure, units
Hyperion Android
App Debugging & Inspection Tool for Android
Stars: ✭ 1,778 (+3254.72%)
Mutual labels:  library, measure
Pubg mobile memory hacking examples
Pubg Mobile Emulator Gameloop Memory Hacking C++ code examples. Ex: Name, Coord, Bones, Weapons, Items, Box, Drop etc.
Stars: ✭ 224 (+322.64%)
Mutual labels:  memory, library
Js Quantities
JavaScript library for quantity calculation and unit conversion
Stars: ✭ 335 (+532.08%)
Mutual labels:  measure, units
Units
A compile-time enabled Modern C++ library that provides compile-time dimensional analysis and unit/quantity manipulation.
Stars: ✭ 365 (+588.68%)
Mutual labels:  library, units
Unitsnet
Makes life working with units of measurement just a little bit better.
Stars: ✭ 641 (+1109.43%)
Mutual labels:  measure, units
Plog
Portable, simple and extensible C++ logging library
Stars: ✭ 1,061 (+1901.89%)
Mutual labels:  library
Siler
⚡ Flat-files and plain-old PHP functions rockin'on as a set of general purpose high-level abstractions.
Stars: ✭ 1,056 (+1892.45%)
Mutual labels:  library
Postman Collection Generator
A package that automatically generates postman collection from laravel api/web routes
Stars: ✭ 51 (-3.77%)
Mutual labels:  library
Libcon.ahk
LibCon - AutoHotkey Library For Console Support
Stars: ✭ 50 (-5.66%)
Mutual labels:  library
Androidsvgloader
Android library for load svg from internet to imageview
Stars: ✭ 52 (-1.89%)
Mutual labels:  library
Mongomem
In-memory MongoDB Server. Ideal for testing.
Stars: ✭ 51 (-3.77%)
Mutual labels:  memory
Typescript Lib Example
Example of TypeScript library setup for multiple compilation targets using tsc and webpack
Stars: ✭ 50 (-5.66%)
Mutual labels:  library
Kotlin Link Parser
Link preview for android
Stars: ✭ 50 (-5.66%)
Mutual labels:  library
Libgit2
A cross-platform, linkable library implementation of Git that you can use in your application.
Stars: ✭ 8,208 (+15386.79%)
Mutual labels:  library

membrain

memory-brain GitHub CI Hackage Stackage Lts Stackage Nightly MPL-2.0 license

"People think dreams aren't real just because they aren't made of matter, of particles. Dreams are real. But they are made of viewpoints, of images, of memories and puns and lost hopes."

― Neil Gaiman

This package implements type-safe memory units. It pursues the following goals:

  1. Focus on correctness.
  2. Low amount of boilerplate should be required to use the library.

The ideas behind this package are described in the following blog post:

The library is built around the following data type:

newtype Memory (mem :: Nat) = Memory
    { unMemory :: Natural
    }

This data type stores every memory internally as bits. However, unit multiplier is stored as type-level natural number. This approach allows to represent different units and implement instances for them with low amount of boilerplate.

membrain implements various useful functions to work with Memory:

  1. Smart constructors.
  2. Conversion functions.
  3. Pretty displaying.
  4. Dependently-typed parsing.
  5. Numeric functions.
  6. Type-safe wrappers around functions from base.

Acknowledgement

Icons made by Kiranshastry from Flaticon is licensed by CC 3.0 BY.

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].