All Projects → GrayJack → janetrs

GrayJack / janetrs

Licence: MIT license
Rust high level bindings for Janet

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to janetrs

simplesquirrel
Yet another simple binding in C++11 for Squirrel scripting language
Stars: ✭ 37 (+2.78%)
Mutual labels:  binding, bindings
bound
Data-binding made easy
Stars: ✭ 21 (-41.67%)
Mutual labels:  binding, bindings
webview
Nim bindings for https://github.com/zserge/webview
Stars: ✭ 91 (+152.78%)
Mutual labels:  binding, bindings
nuklear4j
Java binding for nuklear
Stars: ✭ 61 (+69.44%)
Mutual labels:  binding, bindings
http
A janet http client library
Stars: ✭ 22 (-38.89%)
Mutual labels:  janet, janet-lang
raylib-zig
Manually tweaked, auto generated raylib bindings for zig. https://github.com/raysan5/raylib
Stars: ✭ 122 (+238.89%)
Mutual labels:  binding, bindings
kindaVim.theapp
Ultimate Vim Mode for macOS
Stars: ✭ 372 (+933.33%)
Mutual labels:  bindings
imgui-java
JNI based binding for Dear ImGui
Stars: ✭ 270 (+650%)
Mutual labels:  binding
ripeatlas
Go bindings for RIPE Atlas API
Stars: ✭ 12 (-66.67%)
Mutual labels:  bindings
interop
Python/C/Go/Rust/Haskell interop examples
Stars: ✭ 24 (-33.33%)
Mutual labels:  bindings
godopy
[WIP] Python scripting for the Godot game engine
Stars: ✭ 27 (-25%)
Mutual labels:  bindings
pyguetzli
Python bindings for Google's Guetzli, a JPEG encoder that optimises JPEG compression
Stars: ✭ 28 (-22.22%)
Mutual labels:  binding
sources-for-knative
VMware-related event sources for Knative.
Stars: ✭ 24 (-33.33%)
Mutual labels:  bindings
Forbind
Functional chaining and promises in Swift
Stars: ✭ 44 (+22.22%)
Mutual labels:  binding
UltralightNet
.NET bindings for Ultralight next-gen HTML renderer
Stars: ✭ 29 (-19.44%)
Mutual labels:  bindings
cl-liballegro
Common Lisp bindings and interface to the Allegro 5 game programming library
Stars: ✭ 44 (+22.22%)
Mutual labels:  bindings
cl-readline
Common Lisp bindings to the GNU Readline library
Stars: ✭ 34 (-5.56%)
Mutual labels:  bindings
vsphere-automation-sdk-.net
[DEPRECATED] Please see README. C# samples, language bindings, and API reference documentation for vSphere, VMC, and NSX-T using the VMware REST API
Stars: ✭ 67 (+86.11%)
Mutual labels:  bindings
pkcs11
OCaml bindings for the PKCS#11 cryptographic API
Stars: ✭ 21 (-41.67%)
Mutual labels:  bindings
raylib-odin
Odin bindings for the raylib gamedev library
Stars: ✭ 29 (-19.44%)
Mutual labels:  bindings

JanetRS

Hits-of-Code Build Status Crates.io Docs latest release Docs dev branch MIT license

A crate with high level bindings to Janet C API.

Goals

Provide a safe and ergonomic interface to the Janet C API to create Janet clients and Janet modules/libraries using Rust.

This project still are in it's early stages, so breaking changes may happen, there is no minimal supported Rust version (MSRV) yet.

Notice that most doc tests will fail if the feature "almagation" or "link-system" aren't set, because most of then need the Janet runtime to function properly.

Cargo Features

  • std: Enable some trait impl for types that only exist on the std and the Error trait
  • unicode: Enable more methods for JanetString and JanetBuffer
  • inline-more: More aggressive inlining
  • amalgation: Link the Janet runtime to the package, enabling to use the client module
  • unicode: Enable some unicode methods for JanetString and JanetBuffer
  • system: Use system header to get Janet functions
  • link-system: Link the Janet runtime to the package from the system, enabling to use the client module
  • nightly: Enable some parts of the crate that uses nightly features, to use this feature you must compile the crate using a nightly rust version

Environment variables

These variables are only used when the amalgation feature is enabled

It is possible to use environment variables to overwrite some Janet definitions.

  • JANET_RECURSION_GUARD=<integer>
  • JANET_MAX_PROTO_DEPTH=<integer>
  • JANET_MAX_MACRO_EXPAND=<integer>
  • JANET_STACK_MAX=<integer>

Licensing

This software is licensed under the terms of the MIT Public License.

TODO: Types: Lacking or Incomplete

  • Marshaling

[ ]: Lacking [I]: Incomplete [X]: Done

Probably there is much more missing, for that you can use the lowlevel module to access the raw C API of Janet

TODO: Lib level

  • Better docs.
  • Marshalling mechanism

Acknowledgments

  • Calvin Rose for creating this amazing language called Janet
  • andrewchambers for janet_ll crate and discuss with us some ideas for the abstractions of this crate
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].