{"id":18994921,"url":"https://github.com/wevre/transit-example","last_synced_at":"2026-04-15T22:30:16.478Z","repository":{"id":165585324,"uuid":"640768978","full_name":"wevre/transit-example","owner":"wevre","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-15T19:07:27.000Z","size":275,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-01T15:43:34.068Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wevre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-15T04:58:53.000Z","updated_at":"2023-05-15T04:59:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"20338368-6237-4bbe-865d-8ef2dd6702a7","html_url":"https://github.com/wevre/transit-example","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wevre%2Ftransit-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wevre%2Ftransit-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wevre%2Ftransit-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wevre%2Ftransit-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wevre","download_url":"https://codeload.github.com/wevre/transit-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240010336,"owners_count":19733514,"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-11-08T17:27:36.189Z","updated_at":"2026-04-15T22:30:16.422Z","avatar_url":"https://github.com/wevre.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Transit Example\n\nA project to test out transitive dependencies in ClojureDart. Specifically, I\nhave a ClojureDart library,\n[`transit-cljd`](https://github.com/wevre/transit-cljd), which depends on a Dart\npackage, [`transit_dart`](https://github.com/wevre/transit-dart). The goal here\nis to have all of these dependencies available by simply including transit-cljd\nin `deps.edn`.\n\n## Versions\n\nTag `baseline` is the first example, with all the dependencies handled manually.\nIt works in that I can send transit messages between front-end and back-end. But\nI have installed all the dependencies myself, including a local (manual) copy of\nthe `wevre.transit-cljd` namespace under the `src` directory, and reference to\n`transit_dart` in pubspec.yaml.\n\nNext step is to remove the manual copy of `wevre.transit-cljd` under the `src`\ndirectory and pick it up instead with a reference in `deps.edn`. This is the\nversion tagged `cljd-deps`. That works. Good.\n\nNow we want to remove `transit_dart` from `pubspec.yaml`, with the expectation\nthat it will get picked up as a transitive dependency by the ClojureDart\ncompiler. Baptiste Dupuche has created a version of ClojureDart that is meant to\ndo this: include transitive dependencies for Dart packages that are found in\nClojureDart libraries. This version is tagged with `remove-transit_dart`. I\ncan't get this version to work, when attempting to compile namespace\n`wevre.transit-cljd` (which comes from the `transit-cljd` library) there is an\nerror about not finding 'package:transit_dart/transit_dart.dart'.\n\nI checked with Baptiste and I need to use the version he created of ClojureDart,\nthe version that pulls in dependencies, I need to use that version in _both_\nthis sample project, _and_ in the `transit-cljd` project. I don't think that\nwill be expected in the future, but for now, since this is all a work in\nprogress, it is needed. There is a new tag of this project, `same-hash`, where\neveryone is now using the same version of ClojureDart.\n\n## Usage\n\nThis project is a combination of a ClojureDart+Flutter frontend, and a Clojure\nbackend running a Jetty server to receive transit requests and serve back\ntransit responses. There is very little error checking, and by 'very little' I\nmean 'none'. The front-end is a simple form with two fields. You type in two\nnumbers and hit the button. The values of the fields are sent as a map to the\nserver, which adds them together, and provides a response string of the\nsummation. I know, very sophisticated.\n\nTo get the backend server up and running, start a Clojure repl with the `clj`\nalias, load/evaluate the `adapter` namespace, and execute the `go` function. You\ncan stop the server with the `halt!` function. I'm using VS Code and Calva, so I\nsimply jack-in and run things from the editor. But from the command-line, one\ncould do:\n\n```\nclj -M:clj\nuser=\u003e (require '[adapter])\nuser=\u003e (adapter/go)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwevre%2Ftransit-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwevre%2Ftransit-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwevre%2Ftransit-example/lists"}