{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":749109299,"defaultBranch":"master","name":"crux-torrent","ownerLogin":"crux-bphc","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-01-27T15:56:44.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11003211?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716895565.0","currentOid":""},"activityList":{"items":[{"before":"133f9d5788031a5ae537bf88f4e8da346e154013","after":"a92c72d6ce95d7e5542693070b4ecb50e65ad87d","ref":"refs/heads/peer-protocol-codec","pushedAt":"2024-05-30T18:26:03.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"fix(codec): fix bug where wrong bytes were read leading to erroneous\nframes being made.\n\n- fix by not advancing the cursor (not using src.get_u32()) for length,\n as it advances the cursor, even if maybe enough bytes are not there\n for a full frame, then the next time the method is called after,\n the cursor has already moved past the length, and the data frames are\n incorrectly read as the length.","shortMessageHtmlLink":"fix(codec): fix bug where wrong bytes were read leading to erroneous"}},{"before":"afa8568ab1c4443ae8d18c7fdc58483b8074a4df","after":"133f9d5788031a5ae537bf88f4e8da346e154013","ref":"refs/heads/peer-protocol-codec","pushedAt":"2024-05-30T15:45:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"refactor(codec): add PeerMessageTags struct to as a container for the\ntags for each PeerMessage variant, acts as the source of truth for the\ntags. this is to avoid mismatch between the tags in the enum definition\n(the discrimints are used to be used by the encoder) and pattern matching\nin the decoder.\n\n- use PeerMessageTags in the PeerMessage definition to specify the\n discriminants\n- match on PeerMessageTags constants in Decoder instead of u8 literals.","shortMessageHtmlLink":"refactor(codec): add PeerMessageTags struct to as a container for the"}},{"before":"80342c2c1a19ebde43b05045b9facec1b0796fbe","after":"048f82fa1d7e30fb639eef84f3c81c259ff4b36e","ref":"refs/heads/add-udp-handshake","pushedAt":"2024-05-28T12:13:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"skoriop","name":"Karthik Prakash","path":"/skoriop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/116057817?s=80&v=4"},"commit":{"message":"feat: implement connect for UDP","shortMessageHtmlLink":"feat: implement connect for UDP"}},{"before":null,"after":"80342c2c1a19ebde43b05045b9facec1b0796fbe","ref":"refs/heads/add-udp-handshake","pushedAt":"2024-05-28T11:26:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"skoriop","name":"Karthik Prakash","path":"/skoriop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/116057817?s=80&v=4"},"commit":{"message":"feat: add skeleton implementation","shortMessageHtmlLink":"feat: add skeleton implementation"}},{"before":"470f340fbbb7027e174d441ca0cb2914ab301171","after":"afa8568ab1c4443ae8d18c7fdc58483b8074a4df","ref":"refs/heads/peer-protocol-codec","pushedAt":"2024-05-26T07:33:50.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"fix: improve error mesg","shortMessageHtmlLink":"fix: improve error mesg"}},{"before":null,"after":"470f340fbbb7027e174d441ca0cb2914ab301171","ref":"refs/heads/peer-protocol-codec","pushedAt":"2024-05-26T03:24:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"feat: impl part of Encoder for PeerMessageCodec","shortMessageHtmlLink":"feat: impl part of Encoder for PeerMessageCodec"}},{"before":"db91e1dc3869f89cb8241e2be2246e4251523b96","after":"36a9efbc63c7a8b338ba296d6e22a55ab3e4bfe8","ref":"refs/heads/master","pushedAt":"2024-05-26T03:20:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"fix: remove metainfo_file_path module from src/metainfo/mod.rs","shortMessageHtmlLink":"fix: remove metainfo_file_path module from src/metainfo/mod.rs"}},{"before":"b9de9f1a3d6779aeef556cf59c9c741558e71d40","after":"db91e1dc3869f89cb8241e2be2246e4251523b96","ref":"refs/heads/master","pushedAt":"2024-05-23T20:16:30.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"docs: add reason for repr(C) on PeerHandshake","shortMessageHtmlLink":"docs: add reason for repr(C) on PeerHandshake"}},{"before":"09ed35662478caf8c7b7d5ea2ca7d7fac8507a4b","after":"b9de9f1a3d6779aeef556cf59c9c741558e71d40","ref":"refs/heads/master","pushedAt":"2024-05-17T16:02:34.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"feat(main): for testing, concurrently call all peers, select the first one to\nrespond. move to a thread pool executor implementation later.","shortMessageHtmlLink":"feat(main): for testing, concurrently call all peers, select the firs…"}},{"before":null,"after":"a4da6af756cb800cc57f439aa98bf97958113081","ref":"refs/heads/peer-handshake","pushedAt":"2024-04-23T09:14:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"feat(peer_protocol): added PeerHandshake in peer_protocol module.\n\n- PeerHandshake can be byte cast and sent over TCP to perform handshake,\n the response returned by peer also should have the same structure, so it can be\n turned back into a PeerHandshake.","shortMessageHtmlLink":"feat(peer_protocol): added PeerHandshake in peer_protocol module."}},{"before":"b9ce4c7068655820374773d29f71c8fe9fdedf9d","after":"09ed35662478caf8c7b7d5ea2ca7d7fac8507a4b","ref":"refs/heads/master","pushedAt":"2024-04-19T15:12:22.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"refactor: created new InfoHash wrapper struct instead of using [u8; 20] for better encapsulation","shortMessageHtmlLink":"refactor: created new InfoHash wrapper struct instead of using [u8; 2…"}},{"before":"62ed3504e6c363fc153672cd5a2e351c7b1a9eb9","after":"b9ce4c7068655820374773d29f71c8fe9fdedf9d","ref":"refs/heads/master","pushedAt":"2024-03-23T08:56:45.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"docs(tracker response): add explanation for TrackerResponseResult","shortMessageHtmlLink":"docs(tracker response): add explanation for TrackerResponseResult"}},{"before":"4968284523150e6152cfe46aa6368d862aa9454e","after":"62ed3504e6c363fc153672cd5a2e351c7b1a9eb9","ref":"refs/heads/master","pushedAt":"2024-03-22T18:21:07.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"Merge branch 'http_tracking'","shortMessageHtmlLink":"Merge branch 'http_tracking'"}},{"before":"9a54771eb15aa91cad70ab20c1c0b23c586ca4f0","after":"4968284523150e6152cfe46aa6368d862aa9454e","ref":"refs/heads/master","pushedAt":"2024-02-24T19:06:11.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"build: replaced serde_urlencoded with urlencoding, added reqwest","shortMessageHtmlLink":"build: replaced serde_urlencoded with urlencoding, added reqwest"}},{"before":"f30d9ac71c2bc6e2711069e51369f43586d64f9d","after":null,"ref":"refs/heads/multi-files-length","pushedAt":"2024-02-16T15:38:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pnicto","name":null,"path":"/pnicto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/77240155?s=80&v=4"}},{"before":"9a17b75724593fe922f2e02c6cb32382bc80da3f","after":"9a54771eb15aa91cad70ab20c1c0b23c586ca4f0","ref":"refs/heads/master","pushedAt":"2024-02-16T15:38:30.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"pnicto","name":null,"path":"/pnicto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/77240155?s=80&v=4"},"commit":{"message":"Merge pull request #1 from crux-bphc/multi-files-length\n\nFind the length in multi file torrents","shortMessageHtmlLink":"Merge pull request #1 from crux-bphc/multi-files-length"}},{"before":null,"after":"f30d9ac71c2bc6e2711069e51369f43586d64f9d","ref":"refs/heads/multi-files-length","pushedAt":"2024-02-16T09:21:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pnicto","name":null,"path":"/pnicto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/77240155?s=80&v=4"},"commit":{"message":"feat: calculate file length for multi files","shortMessageHtmlLink":"feat: calculate file length for multi files"}},{"before":"83b781e9349181dce44e6407fe31aefbe51c5a46","after":"9a17b75724593fe922f2e02c6cb32382bc80da3f","ref":"refs/heads/master","pushedAt":"2024-02-08T16:52:39.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"chore: updated dependencies","shortMessageHtmlLink":"chore: updated dependencies"}},{"before":"e369ac1b1babfb253caa89157832484453815fa0","after":"83b781e9349181dce44e6407fe31aefbe51c5a46","ref":"refs/heads/master","pushedAt":"2024-02-02T14:47:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"fix(parser): correctly handle serializing FileHashes into bytes for correct sha1 hash","shortMessageHtmlLink":"fix(parser): correctly handle serializing FileHashes into bytes for c…"}},{"before":"c4550a0576a8367da3f70a514618b96b89fa0568","after":"e369ac1b1babfb253caa89157832484453815fa0","ref":"refs/heads/master","pushedAt":"2024-02-01T13:56:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"feat(parser): add custom deserializer for file hashes to avoid bt later","shortMessageHtmlLink":"feat(parser): add custom deserializer for file hashes to avoid bt later"}},{"before":"54b85595323902238937e1fa1e00c4ab8996770a","after":"c4550a0576a8367da3f70a514618b96b89fa0568","ref":"refs/heads/master","pushedAt":"2024-01-29T15:36:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"feat: calculate sha1 info hash on info struct.\n\n- moved torrent stuff into torrent.rs\n- added sha1_smol dependency","shortMessageHtmlLink":"feat: calculate sha1 info hash on info struct."}},{"before":"f7587ab496eea7c38793b63426aa9eddb34e9339","after":"54b85595323902238937e1fa1e00c4ab8996770a","ref":"refs/heads/master","pushedAt":"2024-01-27T20:05:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"fix: fixes parsing issue on FileInfo by setting untagged\n\n- needed to change to serde_bencode to use serde untagged as\n bendy seems to not implement it and still gives an error.","shortMessageHtmlLink":"fix: fixes parsing issue on FileInfo by setting untagged"}},{"before":"f3e64cbf0f0b776600aabd026866740b83eeef07","after":"f7587ab496eea7c38793b63426aa9eddb34e9339","ref":"refs/heads/master","pushedAt":"2024-01-27T16:25:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"feat: setup cli and basic torrentfile parsing scheme","shortMessageHtmlLink":"feat: setup cli and basic torrentfile parsing scheme"}},{"before":null,"after":"f3e64cbf0f0b776600aabd026866740b83eeef07","ref":"refs/heads/master","pushedAt":"2024-01-27T15:56:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"poisonpwn","name":"Adithyadev Rajesh","path":"/poisonpwn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45178461?s=80&v=4"},"commit":{"message":"Initial commit","shortMessageHtmlLink":"Initial commit"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWFAkCQA","startCursor":null,"endCursor":null}},"title":"Activity · crux-bphc/crux-torrent"}