{"action":"created","issue":{"url":"https://api.github.com/repos/wg/scrypt/issues/29","labels_url":"https://api.github.com/repos/wg/scrypt/issues/29/labels{/name}","comments_url":"https://api.github.com/repos/wg/scrypt/issues/29/comments","events_url":"https://api.github.com/repos/wg/scrypt/issues/29/events","html_url":"https://github.com/wg/scrypt/issues/29","id":87088865,"number":29,"title":"Split project into several implementation modules","user":{"login":"schildbach","id":743306,"avatar_url":"https://avatars.githubusercontent.com/u/743306?v=3","gravatar_id":"","url":"https://api.github.com/users/schildbach","html_url":"https://github.com/schildbach","followers_url":"https://api.github.com/users/schildbach/followers","following_url":"https://api.github.com/users/schildbach/following{/other_user}","gists_url":"https://api.github.com/users/schildbach/gists{/gist_id}","starred_url":"https://api.github.com/users/schildbach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schildbach/subscriptions","organizations_url":"https://api.github.com/users/schildbach/orgs","repos_url":"https://api.github.com/users/schildbach/repos","events_url":"https://api.github.com/users/schildbach/events{/privacy}","received_events_url":"https://api.github.com/users/schildbach/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-06-10T20:04:38Z","updated_at":"2015-06-12T08:13:55Z","closed_at":null,"body":"I looked at all the current issues, pull requests and most of the forks (on GitHub). I noticed almost all changes deal with native code support. Either they want to get rid of specific native libs (because they cause crashes) or they want to support currently unsupported architectures. One PR even wants to get rid of the Java impl such that only native code can be used.\r\n\r\nI think a clean way of handling all these cases would be splitting the project into modules:\r\n\r\n* `scrypt-api`: contains only the interfaces.\r\n* `scrypt-impl-java`: cointains the Java implementation.\r\n* `scrypt-impl-android`: contains native impls for relevant Android architectures (these days: arm+intel 32+64bit).\r\n* `scrypt-impl-desktop`: contains native impls for relevant Desktop OSes (Linux, Windows, MacOS).\r\n\r\nOf course variations are possible, for example `scrypt-impl-java` could stay with `scrypt-api`, or `scrypt-impl-desktop` could be split into separate `scrypt-impl-linux`, `scrypt-impl-windows` and `scrypt-impl-macos` modules.\r\n\r\nIdeally all the modules are built from source, rather than including binary blobs like today.\r\n\r\nThe idea is for example an Android app would depend on `scrypt-impl-android` and get all it needs (but not more).\r\n\r\n@wg Would you be ok with this concept? You don't necessarly need to implement it yourself."},"comment":{"url":"https://api.github.com/repos/wg/scrypt/issues/comments/111405884","html_url":"https://github.com/wg/scrypt/issues/29#issuecomment-111405884","issue_url":"https://api.github.com/repos/wg/scrypt/issues/29","id":111405884,"user":{"login":"schildbach","id":743306,"avatar_url":"https://avatars.githubusercontent.com/u/743306?v=3","gravatar_id":"","url":"https://api.github.com/users/schildbach","html_url":"https://github.com/schildbach","followers_url":"https://api.github.com/users/schildbach/followers","following_url":"https://api.github.com/users/schildbach/following{/other_user}","gists_url":"https://api.github.com/users/schildbach/gists{/gist_id}","starred_url":"https://api.github.com/users/schildbach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schildbach/subscriptions","organizations_url":"https://api.github.com/users/schildbach/orgs","repos_url":"https://api.github.com/users/schildbach/repos","events_url":"https://api.github.com/users/schildbach/events{/privacy}","received_events_url":"https://api.github.com/users/schildbach/received_events","type":"User","site_admin":false},"created_at":"2015-06-12T08:13:55Z","updated_at":"2015-06-12T08:13:55Z","body":"IMHO the added complexity would be worth it, since there are so many issues with the current layout. But of course it's your decision."}}