open-source-ideas / ideas

💡 Looking for inspiration for your next open source project? Or perhaps you've got a brilliant idea you can't wait to share with others? Open Source Ideas is a community built specifically for this! 👋
6.56k stars 221 forks source link

WebAssembly is here, how about making a package manager for webasm apps? #159

Open Kreijstal opened 5 years ago

Kreijstal commented 5 years ago

Project description

[Describe the project the best you can. Give any background information or link to resources that are necessary to understand the problem it is intended to solve. The more you elaborate on your idea, the easier it is to accomplish.]

WebAsm is finally here, but there seems to be no provider of packages like npm, apt-get, etc... there might be some demand for this, so why not provide packages to basic things like bash, python, ruby, ghc. It might not be so easy to port some functionality like networking, so there will be some decisions based around that.

Relevant Technology

asm.js, webasm, emscripten, etc. [Write what technology is relevant. What language, what platform, any particular library/framework/existing project it is based on?]

Complexity and required time

[Please only tick off one box in each category by changing [ ] to [x]. The labels on the project will then be updated by the maintainers as soon as possible.]

Complexity

Required time (ETA)

ayjayt commented 5 years ago

Wasm is a target. I don't think most people write in wasm, they compile to wasm. The package manager would be for the language they write in, no?

RichiCoder1 commented 5 years ago

While I imagine most Wasm projects will be one language top to bottom (Rust, C#, etc...) plus maybe JavaScript, it is an intended goal of Wasm to be inter-operable. A binary and language agnostic interface definition package distribution platform would go a long ways towards this goal. Integration, after that, into each native languages package manager would be great to. Otherwise you'll put a lot of onus on package makers to check the boxes for each Wasm-targetable platform's package manager.

That is not to say larger teams with those kind of resources shouldn't. I agree that if you have the resources, you should expose a language friendly wrap like with C-interfacing Libraries.

ColinEberhardt commented 5 years ago

WebAssembly code is platform / host independent. However, in practice, it tends to be tightly coupled to a specific host and language, for example wasm built with Rust contains Rust-specific binding code. For that reason people tend to distribute wasm code using the package manager of the hosting environment (cargo, npm, ...)

I don't think it will make much sense to distribute wasm on it's own until it has an ABI in place, e.g. the CloudABI

ayjayt commented 5 years ago

It's a goal of WASM to be inter-operable as in, the teams building WASM intend you to write your application in many languages? Because this seems more like an LLVM issue than a WASM run-time issue. The issue isn't just your package manager, it's also your LLVM setup. For example, see https://github.com/twitter/pants.

I could see a WASM-seperate repo source for each package manager, but a new package manager is rewriting all the other ones into a monolith for the sake of enforcing the condition that it will compile properly to WASM.

That's all from me though, because I've never tried to write WASM in many languages at once.

rektide commented 5 years ago

I'd far prefer seeing something like https://www.pikapkg.com/ . Pikapkg is a way to find ESM modules in the npm repository. Rather than build an entirely new package manager, npm ought to be leveraged to get us most of the way there.

What of value in a wasm repo would we want beyond npm? The ability to find wasm packages would be one thing. Anything else?

TitanThinktank commented 5 years ago

anything that gets rid of dependence on NodeJS will be a huge advancement to human evolution.

syrusakbary commented 5 years ago

Hi everyone!

We just launched wapm, a Package Manager for WebAssembly. I would love to hear your thoughts!

TitanThinktank commented 5 years ago

a Package Manager for WebAssembly. I would love to hear your thoughts!

god bless you, we need hundreds of guys like you to save webAssembly from npm , the most important thing since dawn of internet. i will join in contributing to this revolutionary era as i pick up pace at these things.

KOLANICH commented 5 years ago

https://github.com/wapmio

This organization has no public repositories.

During the alpha, telemetry (specifically error logging to Sentry) is enabled by default.

According to https://wapm.io/help/reference , no mandatory package signing.

Don't use that.

syrusakbary commented 5 years ago

@KOLANICH thanks for your feedback. We just added support for package signing on wapm, and we will release a new version soon: https://github.com/wasmerio/wapm-cli/pull/110

Please let us know if you have any suggestions into what to improve! 🙂