{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":551348093,"defaultBranch":"main","name":"yara-x","ownerLogin":"VirusTotal","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-10-14T08:29:15.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7701252?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726572792.0","currentOid":""},"activityList":{"items":[{"before":"d8f28dac2f5f9a8c4280b4b196bb90a31c95e78d","after":"aee95d1e7e2c7bf3b01dec4271944dd8f9dfe0dd","ref":"refs/heads/compiler-features","pushedAt":"2024-09-18T14:52:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"chore: add `omitempty` to some fields in `CompileError` and `Warning`.","shortMessageHtmlLink":"chore: add omitempty to some fields in CompileError and Warning."}},{"before":"ea2147cd1c2db30f3b41883c8c47405cdfbb899e","after":"36f60f2b6d78cfd58b949fd99717b722257fc45f","ref":"refs/heads/main","pushedAt":"2024-09-18T14:47:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"chore: add `omitempty` to some fields in `CompileError` and `Warning`.","shortMessageHtmlLink":"chore: add omitempty to some fields in CompileError and Warning."}},{"before":"67c7979285c3a6c0b6f7053d436764e839d5576e","after":"ea2147cd1c2db30f3b41883c8c47405cdfbb899e","ref":"refs/heads/main","pushedAt":"2024-09-18T13:19:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"style: fit format","shortMessageHtmlLink":"style: fit format"}},{"before":"2f1e1dc9f98cfb9d05cebb31f145b4d85332d193","after":"d8f28dac2f5f9a8c4280b4b196bb90a31c95e78d","ref":"refs/heads/compiler-features","pushedAt":"2024-09-18T13:19:00.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"style: fit format","shortMessageHtmlLink":"style: fit format"}},{"before":"92651c7a0434ac85a4a238412650eac46f8b6561","after":"67c7979285c3a6c0b6f7053d436764e839d5576e","ref":"refs/heads/main","pushedAt":"2024-09-18T13:17:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor: allow multiple footers in error/warning messages\n\nWith this change we open the possibility of adding multiple footers to error messages.","shortMessageHtmlLink":"refactor: allow multiple footers in error/warning messages"}},{"before":"e3a1003f3e980140a45a0e24023a8ad5bbf454b5","after":"92651c7a0434ac85a4a238412650eac46f8b6561","ref":"refs/heads/main","pushedAt":"2024-09-17T11:37:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor(capi): redesign the C API using callbacks (#198)\n\nInstead of allocating a `YRX_PATTERNS` structure with patterns and matches, the API offers functions that allow iterating over the patterns using callback functions. With this design the allocation of memory is not necessary.\n\nThe implementation is also split into more files for making the code easier to maintain.","shortMessageHtmlLink":"refactor(capi): redesign the C API using callbacks (#198)"}},{"before":"ddf6e5673e785bcc01a48ca6f971b519c9e1244a","after":null,"ref":"refs/heads/capi-refactor","pushedAt":"2024-09-17T11:33:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"}},{"before":"55aa752c24a1352c8b79b43178502ba3e940ab63","after":"2f1e1dc9f98cfb9d05cebb31f145b4d85332d193","ref":"refs/heads/compiler-features","pushedAt":"2024-09-17T11:32:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor(capi): redesign the C API using callbacks (#198)\n\nInstead of allocating a `YRX_PATTERNS` structure with patterns and matches, the API offers functions that allow iterating over the patterns using callback functions. With this design the allocation of memory is not necessary.\r\n\r\nThe implementation is also split into more files for making the code easier to maintain.","shortMessageHtmlLink":"refactor(capi): redesign the C API using callbacks (#198)"}},{"before":"6cfefaab3f446439a9a1c20093da4f3889c2162c","after":"ddf6e5673e785bcc01a48ca6f971b519c9e1244a","ref":"refs/heads/capi-refactor","pushedAt":"2024-09-17T11:25:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"docs: update documentation for C API.","shortMessageHtmlLink":"docs: update documentation for C API."}},{"before":"0778264d96b5a81554c65a6087c84a7c9a9953fa","after":"6cfefaab3f446439a9a1c20093da4f3889c2162c","ref":"refs/heads/capi-refactor","pushedAt":"2024-09-17T09:49:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor: continue refactoring the C API","shortMessageHtmlLink":"refactor: continue refactoring the C API"}},{"before":null,"after":"0778264d96b5a81554c65a6087c84a7c9a9953fa","ref":"refs/heads/capi-refactor","pushedAt":"2024-09-16T15:08:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor(capi): redesign the C API and use callback functions for accessing rule's patterns and matches.\n\nInstead of allocating a `YRX_PATTERNS` structure with patterns and matches, the API offers functions that allow iterating over the patterns using callback functions. With this design the allocation of memory is not necessary.\n\nThe implementation is also split into more files for making the code easier to maintain.","shortMessageHtmlLink":"refactor(capi): redesign the C API and use callback functions for acc…"}},{"before":"f73826247e879890a03cf36ecb9e249dfdf407a4","after":"55aa752c24a1352c8b79b43178502ba3e940ab63","ref":"refs/heads/compiler-features","pushedAt":"2024-09-15T11:21:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"chore: update `yara_x.h`","shortMessageHtmlLink":"chore: update yara_x.h"}},{"before":"5b2306539a4ac66b9e436c631d1c30121ced2c1d","after":"e3a1003f3e980140a45a0e24023a8ad5bbf454b5","ref":"refs/heads/main","pushedAt":"2024-09-15T11:21:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"chore: update `yara_x.h`","shortMessageHtmlLink":"chore: update yara_x.h"}},{"before":"c827c6dcb58cbaa489424c0cfb9a2dfe438c941e","after":"5b2306539a4ac66b9e436c631d1c30121ced2c1d","ref":"refs/heads/main","pushedAt":"2024-09-15T10:59:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"tests(go): add more tests","shortMessageHtmlLink":"tests(go): add more tests"}},{"before":"5554de11f61d5489bbe794c2518038c55f7b3de1","after":"f73826247e879890a03cf36ecb9e249dfdf407a4","ref":"refs/heads/compiler-features","pushedAt":"2024-09-15T10:58:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"tests(go): add more tests","shortMessageHtmlLink":"tests(go): add more tests"}},{"before":"5ff117a3929d5efce73c2350808e1f9211768027","after":null,"ref":"refs/heads/experimental","pushedAt":"2024-09-15T10:51:56.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"}},{"before":null,"after":"5ff117a3929d5efce73c2350808e1f9211768027","ref":"refs/heads/experimental","pushedAt":"2024-09-15T09:28:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor: don't store a handle in`Scanner`","shortMessageHtmlLink":"refactor: don't store a handle inScanner"}},{"before":"b4be0e18c063f368538c8fbfcad234801e2bb83e","after":null,"ref":"refs/heads/experiment","pushedAt":"2024-09-15T09:28:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"}},{"before":null,"after":"b4be0e18c063f368538c8fbfcad234801e2bb83e","ref":"refs/heads/experiment","pushedAt":"2024-09-15T09:18:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor: don't store a handle in`Scanner`","shortMessageHtmlLink":"refactor: don't store a handle inScanner"}},{"before":"67aa2e62add9832c2d191f46bf56a88053506569","after":"c827c6dcb58cbaa489424c0cfb9a2dfe438c941e","ref":"refs/heads/main","pushedAt":"2024-09-14T18:42:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor(capi): `yrx_rule_patterns` returns null when the rule doesn't have any patterns.","shortMessageHtmlLink":"refactor(capi): yrx_rule_patterns returns null when the rule doesn'…"}},{"before":"7a138d5d8a239104ba1134bd083500f87a42bbde","after":"5554de11f61d5489bbe794c2518038c55f7b3de1","ref":"refs/heads/compiler-features","pushedAt":"2024-09-14T18:41:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor(capi): `yrx_rule_patterns` returns null when the rule doesn't have any patterns.","shortMessageHtmlLink":"refactor(capi): yrx_rule_patterns returns null when the rule doesn'…"}},{"before":"e8bf6ed921cac8e5ac574b9e8e9f48d34a9b05cb","after":"67aa2e62add9832c2d191f46bf56a88053506569","ref":"refs/heads/main","pushedAt":"2024-09-14T18:38:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor(go): avoid using `unsafe.Pointer` for passing handles (#195)\n\nFunctions that receive a `void*` in the C world must be called with an `unsafe.Pointer` from the Go world. However, we are not really passing a pointer, but a \"handle\", and coercing a handle into an `unsafe.Pointer` is problematic (`go vet` complains with \"possible misuse of unsafe.Pointer\", and it could cause a panic as described in https://i.hsfzxjy.site/invalid-pointer-will-bite-you/).\n\nThe solution is introducing small C stub functions that receive an `uintptr_t` instead of a `void*`, and the call the original function, casting the `uintptr_t` into `void*`.","shortMessageHtmlLink":"refactor(go): avoid using unsafe.Pointer for passing handles (#195)"}},{"before":"16c35badd4136e9dab71e2bab32f9284e976ddb0","after":null,"ref":"refs/heads/fix","pushedAt":"2024-09-14T18:35:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"}},{"before":"55ccf5199a5368c5a05080d68c6f11bd2fd3bdba","after":"7a138d5d8a239104ba1134bd083500f87a42bbde","ref":"refs/heads/compiler-features","pushedAt":"2024-09-14T18:34:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor(go): avoid using `unsafe.Pointer` for passing handles (#195)\n\nFunctions that receive a `void*` in the C world must be called with an `unsafe.Pointer` from the Go world. However, we are not really passing a pointer, but a \"handle\", and coercing a handle into an `unsafe.Pointer` is problematic (`go vet` complains with \"possible misuse of unsafe.Pointer\", and it could cause a panic as described in https://i.hsfzxjy.site/invalid-pointer-will-bite-you/).\r\n\r\nThe solution is introducing small C stub functions that receive an `uintptr_t` instead of a `void*`, and the call the original function, casting the `uintptr_t` into `void*`.","shortMessageHtmlLink":"refactor(go): avoid using unsafe.Pointer for passing handles (#195)"}},{"before":"3085c479b646ea4ae656a0955086b438febdf5f9","after":"16c35badd4136e9dab71e2bab32f9284e976ddb0","ref":"refs/heads/fix","pushedAt":"2024-09-14T18:29:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor(go): avoid memory allocations while passing handles to callback functions.\n\nFunctions that receive a `void*` in the C world must be called with an `unsafe.Pointer` from the Go world. However, we are not really passing a pointer, but a \"handle\", and coercing a handle into an `unsafe.Pointer` is problematic (`go vet` complains with \"possible misuse of unsafe.Pointer\", and it could cause a panic as described in https://i.hsfzxjy.site/invalid-pointer-will-bite-you/).\n\nThe solution is introducing small C stub functions that receive an `uintptr_t` instead of a `void*`, and the call the original function, casting the `uintptr_t` into `void*`.","shortMessageHtmlLink":"refactor(go): avoid memory allocations while passing handles to callb…"}},{"before":"8b0c4715d70ba5a98cc481a8b3e11a101715ff08","after":"3085c479b646ea4ae656a0955086b438febdf5f9","ref":"refs/heads/fix","pushedAt":"2024-09-14T07:37:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"fix: possible misuse of `unsafe.Pointer`","shortMessageHtmlLink":"fix: possible misuse of unsafe.Pointer"}},{"before":null,"after":"8b0c4715d70ba5a98cc481a8b3e11a101715ff08","ref":"refs/heads/fix","pushedAt":"2024-09-14T06:44:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"fix: panic due to using `unsafe.Pointer` with values that are not actually a pointer.","shortMessageHtmlLink":"fix: panic due to using unsafe.Pointer with values that are not act…"}},{"before":"d7db62ba36e8ca9f65b549caec2834cfcb34f8da","after":"e8bf6ed921cac8e5ac574b9e8e9f48d34a9b05cb","ref":"refs/heads/main","pushedAt":"2024-09-13T16:15:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor(go): Change the serialization API in Golang.\n\nThe existing `Serialize` and `Deserialize` functions are replaced by `WriteTo` and `ReadFrom`, which write to an `io.Writer` and read from an `io.Reader` respectively. This new API is more efficient because it doesn't need to make a copy of the compiled rules in memory.\n\nThis also removes an issue that existed in `Serialize` when serialized rules are larger than 4GB. It turns out that `C.GoBytes` receives a length of type `C.int` which is a 32-bits integer, effectively limiting the serialized rules to less than 4GB.","shortMessageHtmlLink":"refactor(go): Change the serialization API in Golang."}},{"before":"56827045d43d1a50fbb3012e079254b1227f0518","after":"55ccf5199a5368c5a05080d68c6f11bd2fd3bdba","ref":"refs/heads/compiler-features","pushedAt":"2024-09-13T16:13:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"refactor(go): Change the serialization API in Golang.\n\nThe existing `Serialize` and `Deserialize` functions are replaced by `WriteTo` and `ReadFrom`, which write to an `io.Writer` and read from an `io.Reader` respectively. This new API is more efficient because it doesn't need to make a copy of the compiled rules in memory.\n\nThis also removes an issue that existed in `Serialize` when serialized rules are larger than 4GB. It turns out that `C.GoBytes` receives a length of type `C.int` which is a 32-bits integer, effectively limiting the serialized rules to less than 4GB.","shortMessageHtmlLink":"refactor(go): Change the serialization API in Golang."}},{"before":"755213ed9a0ca846d229d60fea0edb9f8e4821f8","after":"d7db62ba36e8ca9f65b549caec2834cfcb34f8da","ref":"refs/heads/main","pushedAt":"2024-09-13T07:42:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"plusvic","name":"Victor M. Alvarez","path":"/plusvic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182937?s=80&v=4"},"commit":{"message":"fix: calling `Compiler.new_namespace` for a second time with the same name should not have effect\n\nWhen `Compiler.new_namespace` is called two consecutive times with the same namespace, the second call has not effect.","shortMessageHtmlLink":"fix: calling Compiler.new_namespace for a second time with the same…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQxNDo1MjowNS4wMDAwMDBazwAAAAS50qsb","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQxNDo1MjowNS4wMDAwMDBazwAAAAS50qsb","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xM1QwNzo0MjozMS4wMDAwMDBazwAAAAS1NLma"}},"title":"Activity · VirusTotal/yara-x"}