Opened 3 months ago

Closed 2 months ago

#26043 closed enhancement (fixed)

building snowflake into a bundle of pluggable transports

Reported by: hans Owned by:
Priority: Medium Milestone:
Component: Obfuscation/Snowflake Version:
Severity: Normal Keywords:
Cc: dcf, arlolra Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

We're making a lib to make using pluggable transports like this one really easy to use for Android devs. This involves building multiple projects into a single Android AAR library bundle, then selectively calling a method to start the specific transport.

That requires that each transport's code does not have an exported main() function, though I think the main() function can be there, since this is loading the bundle as a shared library, not running it as an executable. This is my first time touching Go, so I'm open to suggestions. So I'm opening this issue to figure out how to make snowflake integratable.

Here's the project for the piece that the Android dev interfaces with:
https://github.com/guardianproject/AndroidPluggableTransportsDispatcher

Here's the project where we build all of the various Go pluggable transports into the JNI bundle used by AndroidPluggableTransportsDispatcher:
https://gitlab.com/eighthave/goptbundle

Child Tickets

Change History (5)

comment:1 Changed 3 months ago by hans

The part I don't understand is the node code, that'll be quite difficult to use on Android. Does Snowflake require the Javascript code to work?

comment:2 in reply to:  1 Changed 2 months ago by dcf

Replying to hans:

The part I don't understand is the node code, that'll be quite difficult to use on Android. Does Snowflake require the Javascript code to work?

The client doesn't need any of the JavaScript code. That's only for the middle proxy. The only code the client needs is in the client/ subdirectory (and its dependencies, go-webrtc and WebRTC itself).

I don't know what your requirements are for PLUTO2, but possibly the mkmulti script from #13770 can help. It rewrites applications (with a main package) into libraries.

comment:3 Changed 2 months ago by dcf

Status: newneeds_review

In email you asked me to merge a .gitlab-ci.yml file to help with your GitLab setup. It seems find to me, but I'll put this ticket in "needs review" for a bit so arlolra can look.

It seems like there are two versions of the patch. Which one do you want?

comment:4 Changed 2 months ago by arlolra

Status: needs_reviewmerge_ready

Probably 25b304a

comment:5 in reply to:  4 Changed 2 months ago by dcf

Resolution: fixed
Status: merge_readyclosed

Replying to arlolra:

Probably 25b304a

Thanks, merged as 25b304a9a8.

Note: See TracTickets for help on using tickets.