Popularity
2.8
Stable
Activity
0.0
Stable
33
7
4

Description

Physikal is a Kotlin units of measurement, physical computing, and dimension analysis library.

Programming language: Kotlin
License: MIT License
Tags: Kotlin     DSL     Library     Dimensional Analysis     Units Of Measurement    

Physikal alternatives and similar libraries

Based on the "Physical Computing" category.
Alternatively, view Physikal alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Physikal or a related project?

Add another 'Physical Computing' Library

README

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 all licence references and agreements mentioned in the Physikal README section above are relevant to that project's source code only.