Skip to content

Reduce the scope of the J2V8 project #441

@irbull

Description

@irbull

The J2V8 project tried to support too many things. It tried to be:

  • A highly performant Java-based JS runtime for Android
  • A highly performant Java-based JS runtime for other platforms (Windows, Linux, Mac)
  • A set of bindings between Java and NodeJS
  • Support for cross compilation from Windows, Mac and Linux to Windows, Mac, Linux and Android

While these are related, I simply cannot keep all these different plates spinning at once. On Android alone, we need to support at least 4 different platforms (x86, x86_64, arm, arm64). Mix in Windows (x86, x86_64), Linux (x86, x86_64), and Mac support, plus optional Node support for all these platforms and the number of targets is too much for me to test/maintain.

I am going to reduce the scope of this project to only support Android, non-NodeJS. Futhermore, I'm only going to support building from Linux to the 4 flavours of Android (x86, x86_64, arm, arm64). This doesn't mean I don't think the other platforms are valuable, I just can't manage them. I'm happy to either support a downstream project which enables other platforms, or link to someone else who wants to build these platforms.

What does this mean for the project:

  • I'm going to be removing the NodeJS support. As I mentioned, I'd be happy to find a way to work with a downstream project if someone wants to maintain it
  • I'm going to leave the existing build scripts in place (for windows, mac, linux), but I won't be producing builds with these. I also won't be maintaining these scripts, but if someone can offer PRs for them I'd be happy to apply them (assuming the PRs don't break the Android builds).
  • I'm going to be closing issues that are out of scope. Again, if someone wants to maintain a downstream project, we could move those issues there

I'm sorry for any inconvenience, but honestly I haven't been building those other platforms for a few years anyways, and I certainly haven't been maintaining them. This really just makes explicit what has been happening implicitly for a while now. I hope by setting honest expectations and reducing the scope of this project, I can give more attention to its original goal, a set of Java bindings for V8 running on Android.

Comments and feedback is welcome.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions