Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/datkt/uv
libuv bindings for Kotlin
https://github.com/datkt/uv
kotlin kotlin-library libuv libuv-api libuv-bindings native node npm uv
Last synced: 3 months ago
JSON representation
libuv bindings for Kotlin
- Host: GitHub
- URL: https://github.com/datkt/uv
- Owner: datkt
- License: mit
- Created: 2018-10-27T19:52:58.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-04-04T02:35:49.000Z (almost 6 years ago)
- Last Synced: 2024-08-02T22:23:19.568Z (6 months ago)
- Topics: kotlin, kotlin-library, libuv, libuv-api, libuv-bindings, native, node, npm, uv
- Language: Shell
- Size: 37.1 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-repos - datkt/uv - libuv bindings for Kotlin (Shell)
README
datkt.uv
========libuv bindings for Kotlin/Native.
## Installation
The `uv` package an be installed with various package managers.
### From NPM
```sh
$ npm install @datkt/uv
```**Note:** *This will install **uv** into `node_modules/@datkt/uv`*
### Install From Source
```sh
$ git clone [email protected]:datkt/uv.git
$ cd uv
$ make build # or make klib
$ make install
```## Prerequisites
* [Kotlin/Native](https://github.com/JetBrains/kotlin-native) and the
`konanc` command line program.
* [make](https://www.gnu.org/software/make/)## Usage
```sh
## Compile a program in 'main.kt' and link uv.klib found in node_modules
$ konanc -l "$(find node_modules -name uv.klib)" main.kt
```where `main.kt` might be
```kotlin
import datkt.uv.* // entire libuv API
import kotlinx.cinterop.* // exposes types needed for interopfun main(args: Array) {
if (0 != uv_init()) {
throw Error("Failed to initialize libuv")
}
}
````## Example
```kotlin
import kotlinx.cinterop.*
import datkt.uv.uv_init
import datkt.uv.randombytes_buf
import datkt.uv.randombytes_random
import datkt.uv.randombytes_uniformfun main(args: Array) {
val rc = uv_init()if (0 != rc) {
throw Error("uv_init() != 0")
}
}
```## libuv API
This package binds libuvs entire API and provides an
[interop](https://github.com/JetBrains/kotlin-native/blob/master/INTEROP.md)
API for Kotlin and can be imported from the `uv` package.## Building
The `uv` package can be built from source into various targets.
### Kotlin Library
`uv.klib`, a Kotlin library that can be linked with `konanc` can be
built from source.```sh
$ make klib
```which will produce `build/lib/uv.klib`. The library can be installed
with `klib` by running `make install`### Static Library
`libuv.a`, a static library that can be linked with `konanc` can be
built from source.```sh
$ make static
```which will produce `build/lib/libuv.a` and C header files in
`build/include`. The library can be installed into your system by
running `make install`. The path prefix can be set by defining the
`PREFIX` environment or `make` variable. It defaults to
`PREFIX=/usr/local`## See Also
* https://libuv.gitbook.io/doc
* https://github.com/jedisct1/libuv
* https://github.com/uv-friends/uv-native## License
MIT