Skip to content

Trying to use with PGlite (wasm Postgres) and getting: Error generating modules: Could not read 'valtype', unexpected byte: b, expected one of... #131

@samwillis

Description

@samwillis

Before submitting a new issue

  • I tested using the latest version of the library, as the bug might be already fixed.
  • I tested using a supported version of react native.
  • I checked for possible duplicate issues, with possible answers.

Bug summary

Hey,

I'm one of the developers working on PGlite, a WASM build of Postgres. Polygen looks super cool! I'm very excited to try PGlite with it. We have been looking at various routes to React Native support, and Polygen look like it could be a perfect fit. We have done some experiments with wasm2c and have validated that we can run a PGlite build thats been decompiled to C with it.

However, when I run npx polygen generate I am seeing this error:

npx polygen generate
ℹ Generating code for 1 WebAssembly module(s)                                   16:51:55
✖ Processing local module ./assets/postgres.wasm

[16:51:55]  ERROR  Error generating modules: Could not read 'valtype', unexpected byte: b, expected one of [127, 126, 125, 124, 123, 112, 111] (binary offset: 0x40f4)

We tried it with both an Emscripten build, and one produces by the WASI SDK and get a similar result.

The WASI build of PGlite (which we event officially released yet) does decompile with wasm2c - we've tried that route ourselves.

These are the two files:

Emscripten build: postgres.wasm.zip

WASI SDK build: pglite.wasi.zip

Please let me know if there is anything I can do to help debug this.

Library version

0.2.1

Environment info

expo-env-info 1.2.2 environment info:
    System:
      OS: macOS 15.3.2
      Shell: 5.9 - /bin/zsh
    Binaries:
      Node: 23.11.0 - ~/.nvm/versions/node/v23.11.0/bin/node
      npm: 10.9.2 - ~/.nvm/versions/node/v23.11.0/bin/npm
    Managers:
      CocoaPods: 1.16.2 - /opt/homebrew/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 24.2, iOS 18.2, macOS 15.2, tvOS 18.2, visionOS 2.2, watchOS 11.2
    IDEs:
      Android Studio: 2022.3 AI-223.8836.35.2231.10671973
      Xcode: 16.2/16C5032a - /usr/bin/xcodebuild
    npmPackages:
      expo: ~52.0.46 => 52.0.46 
      expo-router: ~4.0.20 => 4.0.20 
      react: 18.3.1 => 18.3.1 
      react-dom: 18.3.1 => 18.3.1 
      react-native: 0.76.9 => 0.76.9 
      react-native-web: ~0.19.13 => 0.19.13 
    Expo Workflow: managed

Steps to reproduce

Download the files above, put them in a project with polygon, and try to run generate against them.

Reproducible sample code

export default polygenConfig({
  /...... snip
  /**
   * List of modules to be used in the project.
   *
   * Each module can be individually configured, by passing options object as a second
   * argument (or 3rd, for external modules).
   */
  modules: [
    localModule('./assets/postgres.wasm'),
    // localModule('./assets/pglite.wasi'),
  ],
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions