Expand the datatypes in rust port

Open
#646 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@pranab-mandal is already working on this.

Since Oct 23, 2026.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
rust
Domain
backend

Research direction

Start with the example script and inspect the rs_port and value conversion layers to compare the listed Rust types with existing MetaCall conversions. Done means the supported and missing types are verified, with agreed conversions for the selected missing categories and corresponding behavior reflected in the protocol representation.

Written by the indexing model from the issue text.

Description

rust

Context

The current implementation of rust loader only supports a limited subset of Rust datatypes into MetaCall type conversions.
The goal of this issue is to track which types are already supported and which ones are still missing.
This also helps unify the metacall protocol representation with the Rust side.

Currently working

From testing the example script:

-bool → METACALL_BOOL
-char → METACALL_CHAR
-i16 → METACALL_SHORT
-i32 → METACALL_INT
-i64 → METACALL_LONG
-f32 → METACALL_FLOAT
-f64 → METACALL_DOUBLE
-String → METACALL_STRING
-Vec → METACALL_BUFFER
-Vec → METACALL_ARRAY
-HashMap<String, T> → METACALL_MAP

Missing types

The following types likely need implementation or verification in the (rs_port) and value conversion layer:

Primitive types
  • i8 / i128
  • u8 / u16 / u32 / u64 / u128
  • f64
  • bool
  • char
Optional and Result types
  • Option
  • Result<T, E>
Collections
  • Vec (other than i8)
  • Vec<Vec>
  • Tuple types
  • Structs
Complex types
  • Enums
  • Nested maps / arrays
  • Null / unit type ()
Dominant language
C
Stars
1.8k
Forks
266
Avg merge
2d 16h
Merged PRs (30d)
14

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from metacall/core

All issues in metacall/core

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.