All Projects → Tenkiv → physikal

Tenkiv / physikal

Licence: MIT license
Mirror of Gitlab Repository

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to physikal

Length.js
📏 JavaScript library for length units conversion.
Stars: ✭ 292 (+784.85%)
Mutual labels:  conversion, units
Convert Units
An elegant way to convert quantities between different units.
Stars: ✭ 480 (+1354.55%)
Mutual labels:  conversion, units
php-unit-conversion
A library providing full PSR-4 compatible unit conversions
Stars: ✭ 47 (+42.42%)
Mutual labels:  conversion, units
Unitsnet
Makes life working with units of measurement just a little bit better.
Stars: ✭ 641 (+1842.42%)
Mutual labels:  conversion, units
Rink Rs
Unit conversion tool and library written in rust
Stars: ✭ 242 (+633.33%)
Mutual labels:  conversion, units
fp-units
An FP-oriented library to easily convert CSS units.
Stars: ✭ 18 (-45.45%)
Mutual labels:  conversion, units
Js Quantities
JavaScript library for quantity calculation and unit conversion
Stars: ✭ 335 (+915.15%)
Mutual labels:  conversion, units
Units Converter
A simple utility library to measure and convert between units
Stars: ✭ 31 (-6.06%)
Mutual labels:  conversion, units
Dimensioned
Compile-time dimensional analysis for various unit systems using Rust's type system.
Stars: ✭ 235 (+612.12%)
Mutual labels:  conversion, units
cpc
Text calculator with support for units and conversion
Stars: ✭ 89 (+169.7%)
Mutual labels:  conversion, units
convert
The smallest & fastest library for really easy, totally type-safe unit conversions in TypeScript & JavaScript.
Stars: ✭ 47 (+42.42%)
Mutual labels:  conversion, uom
G711
PCM to G711 Fast Conversions
Stars: ✭ 39 (+18.18%)
Mutual labels:  conversion
ReSampler
High quality command-line audio sample rate converter
Stars: ✭ 120 (+263.64%)
Mutual labels:  conversion
aspose-words-cloud-node
Node.Js library for communicating with the Aspose.Words Cloud API
Stars: ✭ 20 (-39.39%)
Mutual labels:  conversion
pesa
A JS money lib whose precision goes up to 11 (and beyond).
Stars: ✭ 38 (+15.15%)
Mutual labels:  conversion
dicomifier
A medical image converter
Stars: ✭ 22 (-33.33%)
Mutual labels:  conversion
CryptionTool
一个CTF+渗透测试工具框架,集成常见加解密,密码、编码转换,端口扫描,字符处理等功能
Stars: ✭ 62 (+87.88%)
Mutual labels:  conversion
RouteConverter
The popular GPS conversion and editing tool
Stars: ✭ 123 (+272.73%)
Mutual labels:  conversion
ledger2beancount
Ledger to Beancount text-based converter
Stars: ✭ 63 (+90.91%)
Mutual labels:  conversion
xmind2testlink
Convert xmind to test link xml files, support xmind pro and xmind zen.
Stars: ✭ 99 (+200%)
Mutual labels:  conversion

Physikal  License Matrix

Physikal is a Kotlin units of measurement, physical computing, and dimension analysis library. Currently just extensions for Java units of measurement but we are planning for a Kotlin multiplatform rewrite.

Artifacts

Core SI Units Complete Units
JVM Maven Central Maven Central Maven Central

Usage

Create units

    val small = 10.metre
    
    val large = 10.kilo.metre

Includes all operators

    val added = 10.metre + 1.kilo.metre
    >> 1010.0 m
    
    val speed = added/10.minute 
    >> 101 m/min
    
    var aFewSeconds = 5.second
    aFewSeconds++
    >> 6.0 s
    
    10.peta.watt > 2.watt
    >> true
    
    5.gram <= 20.kilo.gram
    >> true
    
    (-10.nano.metre).abs()
    >> 10.0 nm
    
    ## The operator '==' does not always work reliably for quantities;
    ## the function qeq() should be used instead.
    1.kilo.gram == 1000.gram
    >> false
    
    1.kilo.gram qeq 1000.gram
    >> true

Using different units (SI units & other units)

    5.gram + 2.pound
    >> 912.18474 g
    
    (13.kilo.gram + 20.pound) convertTo STONE
    >> 3.47572100600243466674378 st

Future updates

Currently all quantities are reference types, so heavy usage of this library will involve some level of extraneous allocation and GC. Hopefully we can resolve this issue when / if Kotlin inline classes are expanded to support multiple properties.

Special thanks

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