{"id":15331315,"url":"https://github.com/flimzy/gopherjqm-router","last_synced_at":"2025-07-18T09:39:39.869Z","repository":{"id":57604891,"uuid":"48944611","full_name":"flimzy/gopherjqm-router","owner":"flimzy","description":"Router for hybrid GopherJS/jQuery Mobile apps","archived":false,"fork":false,"pushed_at":"2016-02-05T20:30:53.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-02T05:44:24.683Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flimzy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-03T12:19:58.000Z","updated_at":"2017-06-02T10:49:43.000Z","dependencies_parsed_at":"2022-09-13T01:33:25.337Z","dependency_job_id":null,"html_url":"https://github.com/flimzy/gopherjqm-router","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flimzy%2Fgopherjqm-router","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flimzy%2Fgopherjqm-router/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flimzy%2Fgopherjqm-router/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flimzy%2Fgopherjqm-router/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flimzy","download_url":"https://codeload.github.com/flimzy/gopherjqm-router/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241476458,"owners_count":19968916,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T09:55:15.559Z","updated_at":"2025-03-02T08:14:57.910Z","avatar_url":"https://github.com/flimzy.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gopherjqm-router\n\nRouter for [jQuery Mobile](https://jquerymobile.com/) applications written for [GopherJS](http://www.gopherjs.org/) (Go compiled to JavaScript).\n\n## Why?\n\nSeveral routers exist for single-page web applications.  There's at least one for GopherJS, and there's at least one for jQuery Mobile, written in JavaScript.  But there are none (to my knowledge) with bridge both worlds.\n\n## Design goals\n\nThe specific goals I intend this package to acheive are:\n\n* hashchange-driven router for jQuery Mobile apps. [jquerymobile-router](https://github.com/azicchetti/jquerymobile-router) does this, but only for JavaScript code, and only for old versions of jQuery Mobile.\n* The router should be written in Go. [humble-router](https://github.com/go-humble/router) does this, but does not support jQuery Mobile apps.\n* All source (.go and .js files) should be compilable to a single .js bundle. This plays nicely with both jQuery Mobile and GopherJS.\n* The router should support handlers written in either Go or JavaScript.\n\nThe latter point is specifically to bridge two realities: There are people like me, who hate writing JavaScript code, and there is the real world, where skilled web designers and front-end developers write code in JavaScript.\n\nIn \"traditional\" web apps, it's easy for back-end developers to user thier language of choice, and leave client-side JavaScript coding to the front-end guys.  In a [Single Page Application](https://en.wikipedia.org/wiki/Single-page_application) model, such as that provided by jQuery Mobile, no such division of coding technologies is traditionally available. This means that most SPAs are written entirely in a single language. This language is usually JavaScript, or sometimes another language, [compiled to JavaScript](https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS).\n\nOne key goal of this project is to allow the traditional \"client-side\" development to use traditional tools, including JavaScript, while allowing the traditional \"back end\" work to be done in Go, while creating a single, unified output file (compiled JavaScript) which can run in the browser.\n\nIt might be enough to have a router written in Go, with only a JavaScript API, but once we've achieved this, supporting a Go API, and thus allowing request handlers written in Go, too, is a small step to take. This will also allow a choice, when it makes sense, between Go and JS for handler logic. And by making this a design goal from the beginning, I hope to ensure that both modes of operation (handlers in both Go and JS) are well supported.\n\n# License\n\nThis software is released under the terms of the Apache 2.0 license. See LICENCE.md, or read the [full license](http://www.apache.org/licenses/LICENSE-2.0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflimzy%2Fgopherjqm-router","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflimzy%2Fgopherjqm-router","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflimzy%2Fgopherjqm-router/lists"}