{"id":15295101,"url":"https://github.com/grayjack/janetrs","last_synced_at":"2025-05-07T16:10:19.085Z","repository":{"id":62441249,"uuid":"271666032","full_name":"GrayJack/janetrs","owner":"GrayJack","description":"Rust high level bindings for Janet","archived":false,"fork":false,"pushed_at":"2025-01-21T07:21:23.000Z","size":7301,"stargazers_count":75,"open_issues_count":2,"forks_count":4,"subscribers_count":4,"default_branch":"dev","last_synced_at":"2025-05-07T16:10:14.219Z","etag":null,"topics":["binding","bindings","janet","janet-lang","library","rust","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GrayJack.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"GrayJack"}},"created_at":"2020-06-11T23:29:21.000Z","updated_at":"2025-05-02T17:56:14.000Z","dependencies_parsed_at":"2024-01-14T03:51:01.673Z","dependency_job_id":"d7c68860-cb74-4af4-9e3c-26eafe80265a","html_url":"https://github.com/GrayJack/janetrs","commit_stats":{"total_commits":453,"total_committers":2,"mean_commits":226.5,"dds":0.004415011037527616,"last_synced_commit":"e7ae175a83879849359dd54667f8c00d8ab61f01"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayJack%2Fjanetrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayJack%2Fjanetrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayJack%2Fjanetrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayJack%2Fjanetrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GrayJack","download_url":"https://codeload.github.com/GrayJack/janetrs/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252912996,"owners_count":21824066,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binding","bindings","janet","janet-lang","library","rust","rust-lang"],"created_at":"2024-09-30T17:08:37.320Z","updated_at":"2025-05-07T16:10:19.056Z","avatar_url":"https://github.com/GrayJack.png","language":"Rust","funding_links":["https://github.com/sponsors/GrayJack"],"categories":[],"sub_categories":[],"readme":"# JanetRS\n\n[![Hits-of-Code](https://hitsofcode.com/github/grayjack/janetrs?branch=dev)](https://hitsofcode.com/view/github/grayjack/janetrs?branch=dev)\n[![Build Status](https://github.com/GrayJack/janetrs/workflows/Check%20and%20Test/badge.svg)](https://github.com/GrayJack/janetrs/actions)\n[![Crates.io](https://img.shields.io/crates/v/janetrs?logo=rust)](https://crates.io/crates/janetrs)\n[![Docs latest release](https://img.shields.io/static/v1?label=Docs\u0026message=latest\u0026color=blue\u0026logo=rust)](https://docs.rs/janetrs/)\n[![Docs dev branch](https://img.shields.io/static/v1?label=Docs\u0026message=dev\u0026color=lightgray\u0026logo=rust)](https://grayjack.github.io/janetrs/janetrs/index.html)\n[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENCE)\n\nA crate with high level bindings to Janet C API.\n\n## Goals\n\nProvide a safe and ergonomic interface to the Janet C API to create Janet\nclients and Janet modules/libraries using Rust.\n\nThis project still are in it's early stages, so breaking changes may happen,\nthere is no minimal supported Rust version (MSRV) yet.\n\n\n## Cargo Features\n\n- `std`: Enable some trait impl for types that only exist on the `std` and the\n  Error trait\n- `unicode`: Enable more methods for JanetString and JanetBuffer\n- `inline-more`: More aggressive inlining\n- `amalgation`: Link the Janet runtime to the package, enabling to use the\n  client module\n- `unicode`: Enable some unicode methods for JanetString and JanetBuffer\n- `system`: Use system header to get Janet functions\n- `link-system`: Link the Janet runtime to the package from the system, enabling\n  to use the client module\n- `nightly`: Enable some parts of the crate that uses nightly features, to use\n  this feature you must compile the crate using a nightly rust version\n\nBy default, the following features are enabled: `std`, `unicode`, `amalgation`.\n\n**Note:** If you don't need the Janet runtime (eg. making a Janet Library), you can use disable the default features\n\n```toml\njanetrs = { version = \"0.7.0\", default-features = false, features = [\"std\", \"unicode\"] }\n```\n\n## Environment variables\n\n**These variables are only used when the `amalgation` feature is enabled**\n\nIt is possible to use environment variables to overwrite some Janet definitions.\n\n- `JANET_RECURSION_GUARD=\u003cinteger\u003e`\n- `JANET_MAX_PROTO_DEPTH=\u003cinteger\u003e`\n- `JANET_MAX_MACRO_EXPAND=\u003cinteger\u003e`\n- `JANET_STACK_MAX=\u003cinteger\u003e`\n\n## Licensing\n\nThis software is licensed under the terms of the\n[MIT Public License](./LICENSE).\n\n### TODO: Types: Lacking or Incomplete\n\n- [ ] Marshaling\n\n`[ ]: Lacking` `[I]: Incomplete` `[X]: Done`\n\nProbably there is much more missing, for that you can use the `lowlevel` module\nto access the raw C API of Janet\n\n### TODO: Lib level\n\n- Better docs.\n- Marshalling mechanism\n\n## Acknowledgments\n\n- [Calvin Rose](https://github.com/bakpakin) for creating this amazing language\n  called Janet\n- [andrewchambers](https://github.com/andrewchambers) for janet_ll crate and\n  discuss with us some ideas for the abstractions of this crate\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrayjack%2Fjanetrs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrayjack%2Fjanetrs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrayjack%2Fjanetrs/lists"}