├── .github ├── CODEOWNERS └── pull_request_template.md ├── LICENSE ├── README.md ├── badge.svg ├── go.mod ├── go.sum ├── img ├── callgraph.svg ├── codapi.png ├── codecov-tests.png ├── cont-bench-vearutop.png ├── cont-bench-willabides.png ├── cover.png ├── gin-mod-graph-collected.svg ├── go-ssaviz.png ├── go_tool_trace_web.png ├── gocity.png ├── gocov-html.png ├── gocovsh.png ├── godbolt.png ├── golds.png ├── gpt-pullrequest-updater-example.png ├── hugo-code-coverage.svg ├── live-pprof.png ├── modgraphviz-go-featureprocessing.svg ├── packages-graph.svg ├── pprof_callgraph_cpu.png ├── pprof_callgraph_cpu.svg ├── pprof_flamegraph_cpu.png ├── simple-fs.png ├── speedscope_cpu_profile.png ├── tinygo-playground.png ├── tool-cover-html.png └── tparse.png ├── main.go └── page.yaml /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @nikolaydubina 2 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | - [ ] do not edit `README.md` directly 2 | - [ ] `page.yaml` updated 3 | - [ ] `go generate` run 4 | 5 | Thank you for contributing ! 🤝 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Nikolay Dubina 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /badge.svg: -------------------------------------------------------------------------------- 1 | go: recipesgorecipes -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/nikolaydubina/go-recpies 2 | 3 | go 1.23 4 | 5 | require ( 6 | github.com/nikolaydubina/mdpage v1.7.0 // indirect 7 | gopkg.in/yaml.v3 v3.0.1 // indirect 8 | ) 9 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/nikolaydubina/mdpage v1.7.0 h1:whMG+jYWvTE59/ncZXw0n2Dr58jExCD2TBDZTPSoU+w= 2 | github.com/nikolaydubina/mdpage v1.7.0/go.mod h1:RJhbUZIlRBVQRMkLYFgDehxqkRSXSPYhiBwQWtwIlAo= 3 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 4 | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= 5 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 6 | -------------------------------------------------------------------------------- /img/callgraph.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | callgraph 11 | 12 | 13 | 14 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile$1 15 | 16 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile$1 17 | 18 | 19 | 20 | (*os.File).Close 21 | 22 | (*os.File).Close 23 | 24 | 25 | 26 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile$1->(*os.File).Close 27 | 28 | 29 | 30 | 31 | 32 | go.uber.org/multierr.Combine 33 | 34 | go.uber.org/multierr.Combine 35 | 36 | 37 | 38 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile$1->go.uber.org/multierr.Combine 39 | 40 | 41 | 42 | 43 | 44 | flag.commandLineUsage 45 | 46 | flag.commandLineUsage 47 | 48 | 49 | 50 | flag.commandLineUsage->github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile$1 51 | 52 | 53 | 54 | 55 | 56 | runtime.clearpools 57 | 58 | runtime.clearpools 59 | 60 | 61 | 62 | runtime.clearpools->github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile$1 63 | 64 | 65 | 66 | 67 | 68 | (*sync.Once).doSlow 69 | 70 | (*sync.Once).doSlow 71 | 72 | 73 | 74 | (*sync.Once).doSlow->github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile$1 75 | 76 | 77 | 78 | 79 | 80 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run 81 | 82 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run 83 | 84 | 85 | 86 | os.Getenv 87 | 88 | os.Getenv 89 | 90 | 91 | 92 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->os.Getenv 93 | 94 | 95 | 96 | 97 | 98 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->os.Getenv 99 | 100 | 101 | 102 | 103 | 104 | flag.StringVar 105 | 106 | flag.StringVar 107 | 108 | 109 | 110 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->flag.StringVar 111 | 112 | 113 | 114 | 115 | 116 | flag.Parse 117 | 118 | flag.Parse 119 | 120 | 121 | 122 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->flag.Parse 123 | 124 | 125 | 126 | 127 | 128 | log.Printf 129 | 130 | log.Printf 131 | 132 | 133 | 134 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->log.Printf 135 | 136 | 137 | 138 | 139 | 140 | io/ioutil.ReadFile 141 | 142 | io/ioutil.ReadFile 143 | 144 | 145 | 146 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->io/ioutil.ReadFile 147 | 148 | 149 | 150 | 151 | 152 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode 153 | 154 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode 155 | 156 | 157 | 158 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode 159 | 160 | 161 | 162 | 163 | 164 | strings.ToLower 165 | 166 | strings.ToLower 167 | 168 | 169 | 170 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->strings.ToLower 171 | 172 | 173 | 174 | 175 | 176 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->strings.ToLower 177 | 178 | 179 | 180 | 181 | 182 | fmt.Sprintf 183 | 184 | fmt.Sprintf 185 | 186 | 187 | 188 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->fmt.Sprintf 189 | 190 | 191 | 192 | 193 | 194 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->fmt.Sprintf 195 | 196 | 197 | 198 | 199 | 200 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.generate 201 | 202 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.generate 203 | 204 | 205 | 206 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->github.com/nikolaydubina/go-featureprocessing/cmd/generate.generate 207 | 208 | 209 | 210 | 211 | 212 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.run->github.com/nikolaydubina/go-featureprocessing/cmd/generate.generate 213 | 214 | 215 | 216 | 217 | 218 | (*flag.FlagSet).usage 219 | 220 | (*flag.FlagSet).usage 221 | 222 | 223 | 224 | (*flag.FlagSet).usage->github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile$1 225 | 226 | 227 | 228 | 229 | 230 | go/token.NewFileSet 231 | 232 | go/token.NewFileSet 233 | 234 | 235 | 236 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode->go/token.NewFileSet 237 | 238 | 239 | 240 | 241 | 242 | go/parser.ParseFile 243 | 244 | go/parser.ParseFile 245 | 246 | 247 | 248 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode->go/parser.ParseFile 249 | 250 | 251 | 252 | 253 | 254 | go/ast.Inspect 255 | 256 | go/ast.Inspect 257 | 258 | 259 | 260 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode->go/ast.Inspect 261 | 262 | 263 | 264 | 265 | 266 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1 267 | 268 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1 269 | 270 | 271 | 272 | unicode/utf8.DecodeRuneInString 273 | 274 | unicode/utf8.DecodeRuneInString 275 | 276 | 277 | 278 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1->unicode/utf8.DecodeRuneInString 279 | 280 | 281 | 282 | 283 | 284 | unicode.IsLetter 285 | 286 | unicode.IsLetter 287 | 288 | 289 | 290 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1->unicode.IsLetter 291 | 292 | 293 | 294 | 295 | 296 | unicode.In 297 | 298 | unicode.In 299 | 300 | 301 | 302 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1->unicode.In 303 | 304 | 305 | 306 | 307 | 308 | strings.Trim 309 | 310 | strings.Trim 311 | 312 | 313 | 314 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1->strings.Trim 315 | 316 | 317 | 318 | 319 | 320 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1->strings.Trim 321 | 322 | 323 | 324 | 325 | 326 | strings.Fields 327 | 328 | strings.Fields 329 | 330 | 331 | 332 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1->strings.Fields 333 | 334 | 335 | 336 | 337 | 338 | strings.HasPrefix 339 | 340 | strings.HasPrefix 341 | 342 | 343 | 344 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1->strings.HasPrefix 345 | 346 | 347 | 348 | 349 | 350 | strings.TrimPrefix 351 | 352 | strings.TrimPrefix 353 | 354 | 355 | 356 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1->strings.TrimPrefix 357 | 358 | 359 | 360 | 361 | 362 | (go/ast.inspector).Visit 363 | 364 | (go/ast.inspector).Visit 365 | 366 | 367 | 368 | (go/ast.inspector).Visit->github.com/nikolaydubina/go-featureprocessing/cmd/generate.parseCode$1 369 | 370 | 371 | 372 | 373 | 374 | bytes.NewBufferString 375 | 376 | bytes.NewBufferString 377 | 378 | 379 | 380 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.generate->bytes.NewBufferString 381 | 382 | 383 | 384 | 385 | 386 | text/template.New 387 | 388 | text/template.New 389 | 390 | 391 | 392 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.generate->text/template.New 393 | 394 | 395 | 396 | 397 | 398 | (*text/template.Template).Parse 399 | 400 | (*text/template.Template).Parse 401 | 402 | 403 | 404 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.generate->(*text/template.Template).Parse 405 | 406 | 407 | 408 | 409 | 410 | (*text/template.Template).Execute 411 | 412 | (*text/template.Template).Execute 413 | 414 | 415 | 416 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.generate->(*text/template.Template).Execute 417 | 418 | 419 | 420 | 421 | 422 | (*bytes.Buffer).Bytes 423 | 424 | (*bytes.Buffer).Bytes 425 | 426 | 427 | 428 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.generate->(*bytes.Buffer).Bytes 429 | 430 | 431 | 432 | 433 | 434 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile 435 | 436 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile 437 | 438 | 439 | 440 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.generate->github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile 441 | 442 | 443 | 444 | 445 | 446 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile->github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile$1 447 | 448 | 449 | 450 | 451 | 452 | go/format.Source 453 | 454 | go/format.Source 455 | 456 | 457 | 458 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile->go/format.Source 459 | 460 | 461 | 462 | 463 | 464 | path/filepath.Dir 465 | 466 | path/filepath.Dir 467 | 468 | 469 | 470 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile->path/filepath.Dir 471 | 472 | 473 | 474 | 475 | 476 | os.MkdirAll 477 | 478 | os.MkdirAll 479 | 480 | 481 | 482 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile->os.MkdirAll 483 | 484 | 485 | 486 | 487 | 488 | os.Create 489 | 490 | os.Create 491 | 492 | 493 | 494 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile->os.Create 495 | 496 | 497 | 498 | 499 | 500 | (*os.File).Write 501 | 502 | (*os.File).Write 503 | 504 | 505 | 506 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.writeCodeToFile->(*os.File).Write 507 | 508 | 509 | 510 | 511 | 512 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.main 513 | 514 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.main 515 | 516 | 517 | 518 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.main->github.com/nikolaydubina/go-featureprocessing/cmd/generate.run 519 | 520 | 521 | 522 | 523 | 524 | log.Fatalf 525 | 526 | log.Fatalf 527 | 528 | 529 | 530 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.main->log.Fatalf 531 | 532 | 533 | 534 | 535 | 536 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init 537 | 538 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init 539 | 540 | 541 | 542 | bytes.init 543 | 544 | bytes.init 545 | 546 | 547 | 548 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->bytes.init 549 | 550 | 551 | 552 | 553 | 554 | flag.init 555 | 556 | flag.init 557 | 558 | 559 | 560 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->flag.init 561 | 562 | 563 | 564 | 565 | 566 | fmt.init 567 | 568 | fmt.init 569 | 570 | 571 | 572 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->fmt.init 573 | 574 | 575 | 576 | 577 | 578 | go/format.init 579 | 580 | go/format.init 581 | 582 | 583 | 584 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->go/format.init 585 | 586 | 587 | 588 | 589 | 590 | io/ioutil.init 591 | 592 | io/ioutil.init 593 | 594 | 595 | 596 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->io/ioutil.init 597 | 598 | 599 | 600 | 601 | 602 | log.init 603 | 604 | log.init 605 | 606 | 607 | 608 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->log.init 609 | 610 | 611 | 612 | 613 | 614 | os.init 615 | 616 | os.init 617 | 618 | 619 | 620 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->os.init 621 | 622 | 623 | 624 | 625 | 626 | path/filepath.init 627 | 628 | path/filepath.init 629 | 630 | 631 | 632 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->path/filepath.init 633 | 634 | 635 | 636 | 637 | 638 | strings.init 639 | 640 | strings.init 641 | 642 | 643 | 644 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->strings.init 645 | 646 | 647 | 648 | 649 | 650 | text/template.init 651 | 652 | text/template.init 653 | 654 | 655 | 656 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->text/template.init 657 | 658 | 659 | 660 | 661 | 662 | go.uber.org/multierr.init 663 | 664 | go.uber.org/multierr.init 665 | 666 | 667 | 668 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->go.uber.org/multierr.init 669 | 670 | 671 | 672 | 673 | 674 | go/ast.init 675 | 676 | go/ast.init 677 | 678 | 679 | 680 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->go/ast.init 681 | 682 | 683 | 684 | 685 | 686 | go/parser.init 687 | 688 | go/parser.init 689 | 690 | 691 | 692 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->go/parser.init 693 | 694 | 695 | 696 | 697 | 698 | go/token.init 699 | 700 | go/token.init 701 | 702 | 703 | 704 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->go/token.init 705 | 706 | 707 | 708 | 709 | 710 | unicode.init 711 | 712 | unicode.init 713 | 714 | 715 | 716 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->unicode.init 717 | 718 | 719 | 720 | 721 | 722 | unicode/utf8.init 723 | 724 | unicode/utf8.init 725 | 726 | 727 | 728 | github.com/nikolaydubina/go-featureprocessing/cmd/generate.init->unicode/utf8.init 729 | 730 | 731 | 732 | 733 | 734 | -------------------------------------------------------------------------------- /img/codapi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/codapi.png -------------------------------------------------------------------------------- /img/codecov-tests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/codecov-tests.png -------------------------------------------------------------------------------- /img/cont-bench-vearutop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/cont-bench-vearutop.png -------------------------------------------------------------------------------- /img/cont-bench-willabides.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/cont-bench-willabides.png -------------------------------------------------------------------------------- /img/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/cover.png -------------------------------------------------------------------------------- /img/go-ssaviz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/go-ssaviz.png -------------------------------------------------------------------------------- /img/go_tool_trace_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/go_tool_trace_web.png -------------------------------------------------------------------------------- /img/gocity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/gocity.png -------------------------------------------------------------------------------- /img/gocov-html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/gocov-html.png -------------------------------------------------------------------------------- /img/gocovsh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/gocovsh.png -------------------------------------------------------------------------------- /img/godbolt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/godbolt.png -------------------------------------------------------------------------------- /img/golds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/golds.png -------------------------------------------------------------------------------- /img/gpt-pullrequest-updater-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/gpt-pullrequest-updater-example.png -------------------------------------------------------------------------------- /img/live-pprof.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/live-pprof.png -------------------------------------------------------------------------------- /img/modgraphviz-go-featureprocessing.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | gomodgraph 11 | 12 | 13 | 14 | github.com/nikolaydubina/go-featureprocessing 15 | 16 | github.com/nikolaydubina/go-featureprocessing 17 | 18 | 19 | 20 | github.com/google/gofuzz@v1.2.0 21 | 22 | github.com/google/gofuzz@v1.2.0 23 | 24 | 25 | 26 | github.com/nikolaydubina/go-featureprocessing->github.com/google/gofuzz@v1.2.0 27 | 28 | 29 | 30 | 31 | 32 | github.com/stretchr/testify@v1.7.1 33 | 34 | github.com/stretchr/testify@v1.7.1 35 | 36 | 37 | 38 | github.com/nikolaydubina/go-featureprocessing->github.com/stretchr/testify@v1.7.1 39 | 40 | 41 | 42 | 43 | 44 | go.uber.org/multierr@v1.8.0 45 | 46 | go.uber.org/multierr@v1.8.0 47 | 48 | 49 | 50 | github.com/nikolaydubina/go-featureprocessing->go.uber.org/multierr@v1.8.0 51 | 52 | 53 | 54 | 55 | 56 | github.com/davecgh/go-spew@v1.1.0 57 | 58 | github.com/davecgh/go-spew@v1.1.0 59 | 60 | 61 | 62 | github.com/stretchr/testify@v1.7.1->github.com/davecgh/go-spew@v1.1.0 63 | 64 | 65 | 66 | 67 | 68 | github.com/pmezard/go-difflib@v1.0.0 69 | 70 | github.com/pmezard/go-difflib@v1.0.0 71 | 72 | 73 | 74 | github.com/stretchr/testify@v1.7.1->github.com/pmezard/go-difflib@v1.0.0 75 | 76 | 77 | 78 | 79 | 80 | github.com/stretchr/objx@v0.1.0 81 | 82 | github.com/stretchr/objx@v0.1.0 83 | 84 | 85 | 86 | github.com/stretchr/testify@v1.7.1->github.com/stretchr/objx@v0.1.0 87 | 88 | 89 | 90 | 91 | 92 | gopkg.in/yaml.v3@v3.0.0-20200313102051-9f266ea9e77c 93 | 94 | gopkg.in/yaml.v3@v3.0.0-20200313102051-9f266ea9e77c 95 | 96 | 97 | 98 | github.com/stretchr/testify@v1.7.1->gopkg.in/yaml.v3@v3.0.0-20200313102051-9f266ea9e77c 99 | 100 | 101 | 102 | 103 | 104 | github.com/stretchr/testify@v1.7.0 105 | 106 | github.com/stretchr/testify@v1.7.0 107 | 108 | 109 | 110 | go.uber.org/multierr@v1.8.0->github.com/stretchr/testify@v1.7.0 111 | 112 | 113 | 114 | 115 | 116 | go.uber.org/atomic@v1.7.0 117 | 118 | go.uber.org/atomic@v1.7.0 119 | 120 | 121 | 122 | go.uber.org/multierr@v1.8.0->go.uber.org/atomic@v1.7.0 123 | 124 | 125 | 126 | 127 | 128 | gopkg.in/yaml.v3@v3.0.0-20210107192922-496545a6307b 129 | 130 | gopkg.in/yaml.v3@v3.0.0-20210107192922-496545a6307b 131 | 132 | 133 | 134 | go.uber.org/multierr@v1.8.0->gopkg.in/yaml.v3@v3.0.0-20210107192922-496545a6307b 135 | 136 | 137 | 138 | 139 | 140 | gopkg.in/check.v1@v0.0.0-20161208181325-20d25e280405 141 | 142 | gopkg.in/check.v1@v0.0.0-20161208181325-20d25e280405 143 | 144 | 145 | 146 | gopkg.in/yaml.v3@v3.0.0-20200313102051-9f266ea9e77c->gopkg.in/check.v1@v0.0.0-20161208181325-20d25e280405 147 | 148 | 149 | 150 | 151 | 152 | github.com/stretchr/testify@v1.7.0->github.com/davecgh/go-spew@v1.1.0 153 | 154 | 155 | 156 | 157 | 158 | github.com/stretchr/testify@v1.7.0->github.com/pmezard/go-difflib@v1.0.0 159 | 160 | 161 | 162 | 163 | 164 | github.com/stretchr/testify@v1.7.0->github.com/stretchr/objx@v0.1.0 165 | 166 | 167 | 168 | 169 | 170 | github.com/stretchr/testify@v1.7.0->gopkg.in/yaml.v3@v3.0.0-20200313102051-9f266ea9e77c 171 | 172 | 173 | 174 | 175 | 176 | github.com/davecgh/go-spew@v1.1.1 177 | 178 | github.com/davecgh/go-spew@v1.1.1 179 | 180 | 181 | 182 | go.uber.org/atomic@v1.7.0->github.com/davecgh/go-spew@v1.1.1 183 | 184 | 185 | 186 | 187 | 188 | github.com/stretchr/testify@v1.3.0 189 | 190 | github.com/stretchr/testify@v1.3.0 191 | 192 | 193 | 194 | go.uber.org/atomic@v1.7.0->github.com/stretchr/testify@v1.3.0 195 | 196 | 197 | 198 | 199 | 200 | gopkg.in/yaml.v3@v3.0.0-20210107192922-496545a6307b->gopkg.in/check.v1@v0.0.0-20161208181325-20d25e280405 201 | 202 | 203 | 204 | 205 | 206 | github.com/stretchr/testify@v1.3.0->github.com/davecgh/go-spew@v1.1.0 207 | 208 | 209 | 210 | 211 | 212 | github.com/stretchr/testify@v1.3.0->github.com/pmezard/go-difflib@v1.0.0 213 | 214 | 215 | 216 | 217 | 218 | github.com/stretchr/testify@v1.3.0->github.com/stretchr/objx@v0.1.0 219 | 220 | 221 | 222 | 223 | 224 | -------------------------------------------------------------------------------- /img/packages-graph.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | G 11 | 12 | 13 | 14 | go.uber.org/atomic 15 | 16 | go.uber.org/atomic 17 | 18 | 19 | 20 | encoding/json 21 | 22 | encoding/json 23 | 24 | 25 | 26 | go.uber.org/atomic->encoding/json 27 | 28 | 29 | 30 | 31 | 32 | math 33 | 34 | math 35 | 36 | 37 | 38 | go.uber.org/atomic->math 39 | 40 | 41 | 42 | 43 | 44 | strconv 45 | 46 | strconv 47 | 48 | 49 | 50 | go.uber.org/atomic->strconv 51 | 52 | 53 | 54 | 55 | 56 | sync/atomic 57 | 58 | sync/atomic 59 | 60 | 61 | 62 | go.uber.org/atomic->sync/atomic 63 | 64 | 65 | 66 | 67 | 68 | time 69 | 70 | time 71 | 72 | 73 | 74 | go.uber.org/atomic->time 75 | 76 | 77 | 78 | 79 | 80 | go.uber.org/multierr 81 | 82 | go.uber.org/multierr 83 | 84 | 85 | 86 | go.uber.org/multierr->go.uber.org/atomic 87 | 88 | 89 | 90 | 91 | 92 | bytes 93 | 94 | bytes 95 | 96 | 97 | 98 | go.uber.org/multierr->bytes 99 | 100 | 101 | 102 | 103 | 104 | errors 105 | 106 | errors 107 | 108 | 109 | 110 | go.uber.org/multierr->errors 111 | 112 | 113 | 114 | 115 | 116 | fmt 117 | 118 | fmt 119 | 120 | 121 | 122 | go.uber.org/multierr->fmt 123 | 124 | 125 | 126 | 127 | 128 | io 129 | 130 | io 131 | 132 | 133 | 134 | go.uber.org/multierr->io 135 | 136 | 137 | 138 | 139 | 140 | strings 141 | 142 | strings 143 | 144 | 145 | 146 | go.uber.org/multierr->strings 147 | 148 | 149 | 150 | 151 | 152 | sync 153 | 154 | sync 155 | 156 | 157 | 158 | go.uber.org/multierr->sync 159 | 160 | 161 | 162 | 163 | 164 | github.com/nikolaydubina/go-featureprocessing/cmd/generate 165 | 166 | github.com/nikolaydubina/go-featureprocessing/cmd/generate 167 | 168 | 169 | 170 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->go.uber.org/multierr 171 | 172 | 173 | 174 | 175 | 176 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->bytes 177 | 178 | 179 | 180 | 181 | 182 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->fmt 183 | 184 | 185 | 186 | 187 | 188 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->strings 189 | 190 | 191 | 192 | 193 | 194 | flag 195 | 196 | flag 197 | 198 | 199 | 200 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->flag 201 | 202 | 203 | 204 | 205 | 206 | go/ast 207 | 208 | go/ast 209 | 210 | 211 | 212 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->go/ast 213 | 214 | 215 | 216 | 217 | 218 | go/format 219 | 220 | go/format 221 | 222 | 223 | 224 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->go/format 225 | 226 | 227 | 228 | 229 | 230 | go/parser 231 | 232 | go/parser 233 | 234 | 235 | 236 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->go/parser 237 | 238 | 239 | 240 | 241 | 242 | go/token 243 | 244 | go/token 245 | 246 | 247 | 248 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->go/token 249 | 250 | 251 | 252 | 253 | 254 | io/ioutil 255 | 256 | io/ioutil 257 | 258 | 259 | 260 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->io/ioutil 261 | 262 | 263 | 264 | 265 | 266 | log 267 | 268 | log 269 | 270 | 271 | 272 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->log 273 | 274 | 275 | 276 | 277 | 278 | os 279 | 280 | os 281 | 282 | 283 | 284 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->os 285 | 286 | 287 | 288 | 289 | 290 | path/filepath 291 | 292 | path/filepath 293 | 294 | 295 | 296 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->path/filepath 297 | 298 | 299 | 300 | 301 | 302 | text/template 303 | 304 | text/template 305 | 306 | 307 | 308 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->text/template 309 | 310 | 311 | 312 | 313 | 314 | unicode 315 | 316 | unicode 317 | 318 | 319 | 320 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->unicode 321 | 322 | 323 | 324 | 325 | 326 | unicode/utf8 327 | 328 | unicode/utf8 329 | 330 | 331 | 332 | github.com/nikolaydubina/go-featureprocessing/cmd/generate->unicode/utf8 333 | 334 | 335 | 336 | 337 | 338 | github.com/nikolaydubina/go-featureprocessing/transformers 339 | 340 | github.com/nikolaydubina/go-featureprocessing/transformers 341 | 342 | 343 | 344 | github.com/nikolaydubina/go-featureprocessing/transformers->math 345 | 346 | 347 | 348 | 349 | 350 | github.com/nikolaydubina/go-featureprocessing/transformers->strings 351 | 352 | 353 | 354 | 355 | 356 | sort 357 | 358 | sort 359 | 360 | 361 | 362 | github.com/nikolaydubina/go-featureprocessing/transformers->sort 363 | 364 | 365 | 366 | 367 | 368 | github.com/nikolaydubina/go-featureprocessing/cmd/generate/tests 369 | 370 | github.com/nikolaydubina/go-featureprocessing/cmd/generate/tests 371 | 372 | 373 | 374 | github.com/nikolaydubina/go-featureprocessing/cmd/generate/tests->sync 375 | 376 | 377 | 378 | 379 | 380 | github.com/nikolaydubina/go-featureprocessing/cmd/generate/tests->github.com/nikolaydubina/go-featureprocessing/transformers 381 | 382 | 383 | 384 | 385 | 386 | github.com/nikolaydubina/go-featureprocessing/structtransformer 387 | 388 | github.com/nikolaydubina/go-featureprocessing/structtransformer 389 | 390 | 391 | 392 | reflect 393 | 394 | reflect 395 | 396 | 397 | 398 | github.com/nikolaydubina/go-featureprocessing/structtransformer->reflect 399 | 400 | 401 | 402 | 403 | 404 | -------------------------------------------------------------------------------- /img/pprof_callgraph_cpu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/pprof_callgraph_cpu.png -------------------------------------------------------------------------------- /img/pprof_callgraph_cpu.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | 297 | unnamed 298 | 299 | 300 | cluster_L 301 | 302 | 303 | 304 | 305 | Type: cpu 306 | 307 | Type: cpu 308 | Time: Oct 6, 2022 at 9:25am (+08) 309 | Duration: 29.68s, Total samples = 55.82s (188.06%) 310 | Showing nodes accounting for 46.85s, 83.93% of 55.82s total 311 | Dropped 172 nodes (cum <= 2.79s) 312 | See https://git.io/JfYMW for how to read the graph 313 | 314 | 315 | 316 | N1 317 | 318 | 319 | transformers 320 | (*MinMaxScaler) 321 | Transform 322 | 32.67s (58.53%) 323 | of 32.69s (58.56%) 324 | 325 | 326 | 327 | 328 | 329 | N2 330 | 331 | 332 | tests 333 | (*With32FieldsFeatureTransformer) 334 | TransformAllInplaceParallel 335 | func1 336 | 0 of 31.62s (56.65%) 337 | 338 | 339 | 340 | 341 | 342 | N3 343 | 344 | 345 | tests 346 | (*With32FieldsFeatureTransformer) 347 | TransformAllInplace 348 | 0.50s (0.9%) 349 | of 36.09s (64.65%) 350 | 351 | 352 | 353 | 354 | 355 | N2->N3 356 | 357 | 358 | 359 | 360 | 361 | 362 | 31.62s 363 | 364 | 365 | 366 | 367 | 368 | N5 369 | 370 | 371 | tests 372 | (*With32FieldsFeatureTransformer) 373 | TransformInplace 374 | 2.88s (5.16%) 375 | of 35.59s (63.76%) 376 | 377 | 378 | 379 | 380 | 381 | N3->N5 382 | 383 | 384 | 385 | 386 | 387 | 388 | 35.59s 389 | 390 | 391 | 392 | 393 | 394 | N4 395 | 396 | 397 | testing 398 | (*B) 399 | runN 400 | 0 of 12.02s (21.53%) 401 | 402 | 403 | 404 | 405 | 406 | N22 407 | 408 | 409 | tests 410 | BenchmarkWith32FieldsFeatureTransformer_TransformAll_1000000elems 411 | 0 of 7.52s (13.47%) 412 | 413 | 414 | 415 | 416 | 417 | N4->N22 418 | 419 | 420 | 421 | 422 | 423 | 424 | 7.52s 425 | 426 | 427 | 428 | 429 | 430 | N23 431 | 432 | 433 | tests 434 | BenchmarkWith32FieldsFeatureTransformer_TransformAll_1000000elems_8workers 435 | 0 of 4.50s (8.06%) 436 | 437 | 438 | 439 | 440 | 441 | N4->N23 442 | 443 | 444 | 445 | 446 | 447 | 448 | 4.50s 449 | 450 | 451 | 452 | 453 | 454 | N5->N1 455 | 456 | 457 | 458 | 459 | 460 | 461 | 32.69s 462 | 463 | 464 | 465 | 466 | 467 | N6 468 | 469 | 470 | runtime 471 | systemstack 472 | 0 of 7.58s (13.58%) 473 | 474 | 475 | 476 | 477 | 478 | N24 479 | 480 | 481 | runtime 482 | (*mheap) 483 | alloc 484 | func1 485 | 0 of 6.49s (11.63%) 486 | 487 | 488 | 489 | 490 | 491 | N6->N24 492 | 493 | 494 | 495 | 496 | 497 | 498 | 6.49s 499 | 500 | 501 | 502 | 503 | 504 | N7 505 | 506 | 507 | runtime 508 | madvise 509 | 6.54s (11.72%) 510 | 511 | 512 | 513 | 514 | 515 | N8 516 | 517 | 518 | testing 519 | (*B) 520 | launch 521 | 0 of 8.63s (15.46%) 522 | 523 | 524 | 525 | 526 | 527 | N8->N4 528 | 529 | 530 | 531 | 532 | 533 | 534 | 8.63s 535 | 536 | 537 | 538 | 539 | 540 | N9 541 | 542 | 543 | tests 544 | benchTransformAllWith32Fields 545 | 0 of 7.52s (13.47%) 546 | 547 | 548 | 549 | 550 | 551 | N10 552 | 553 | 554 | gofuzz 555 | (*Fuzzer) 556 | Fuzz 557 | 0 of 7.20s (12.90%) 558 | 559 | 560 | 561 | 562 | 563 | N9->N10 564 | 565 | 566 | 567 | 568 | 569 | 570 | 2.80s 571 | 572 | 573 | 574 | 575 | 576 | N17 577 | 578 | 579 | tests 580 | (*With32FieldsFeatureTransformer) 581 | TransformAll 582 | 0 of 4.72s (8.46%) 583 | 584 | 585 | 586 | 587 | 588 | N9->N17 589 | 590 | 591 | 592 | 593 | 594 | 595 | 4.72s 596 | 597 | 598 | 599 | 600 | 601 | N21 602 | 603 | 604 | gofuzz 605 | (*Fuzzer) 606 | fuzzWithContext 607 | 0 of 7.20s (12.90%) 608 | 609 | 610 | 611 | 612 | 613 | N10->N21 614 | 615 | 616 | 617 | 618 | 619 | 620 | 7.20s 621 | (inline) 622 | 623 | 624 | 625 | 626 | 627 | N11 628 | 629 | 630 | runtime 631 | pthread_cond_wait 632 | 3.42s (6.13%) 633 | 634 | 635 | 636 | 637 | 638 | N12 639 | 640 | 641 | runtime 642 | mcall 643 | 0 of 3.71s (6.65%) 644 | 645 | 646 | 647 | 648 | 649 | N27 650 | 651 | 652 | runtime 653 | goexit0 654 | 0 of 3.44s (6.16%) 655 | 656 | 657 | 658 | 659 | 660 | N12->N27 661 | 662 | 663 | 664 | 665 | 666 | 667 | 3.44s 668 | 669 | 670 | 671 | 672 | 673 | N13 674 | 675 | 676 | gofuzz 677 | (*fuzzerContext) 678 | doFuzz 679 | 0.58s (1.04%) 680 | of 7.20s (12.90%) 681 | 682 | 683 | 684 | 685 | 686 | N15 687 | 688 | 689 | gofuzz 690 | (*fuzzerContext) 691 | tryCustom 692 | 0.25s (0.45%) 693 | of 3.93s (7.04%) 694 | 695 | 696 | 697 | 698 | 699 | N13->N15 700 | 701 | 702 | 703 | 704 | 705 | 706 | 3.93s 707 | 708 | 709 | 710 | 711 | 712 | N14 713 | 714 | 715 | testing 716 | (*B) 717 | run1 718 | func1 719 | 0 of 3.39s (6.07%) 720 | 721 | 722 | 723 | 724 | 725 | N14->N4 726 | 727 | 728 | 729 | 730 | 731 | 732 | 3.39s 733 | 734 | 735 | 736 | 737 | 738 | N16 739 | 740 | 741 | runtime 742 | schedule 743 | 0.01s (0.018%) 744 | of 3.80s (6.81%) 745 | 746 | 747 | 748 | 749 | 750 | N26 751 | 752 | 753 | runtime 754 | findrunnable 755 | 0 of 3.60s (6.45%) 756 | 757 | 758 | 759 | 760 | 761 | N16->N26 762 | 763 | 764 | 765 | 766 | 767 | 768 | 3.60s 769 | 770 | 771 | 772 | 773 | 774 | N17->N3 775 | 776 | 777 | 778 | 779 | 780 | 781 | 4.47s 782 | 783 | 784 | 785 | 786 | 787 | N18 788 | 789 | 790 | tests 791 | benchTransformAllParallelWith32Fields 792 | 0 of 4.50s (8.06%) 793 | 794 | 795 | 796 | 797 | 798 | N18->N10 799 | 800 | 801 | 802 | 803 | 804 | 805 | 4.40s 806 | 807 | 808 | 809 | 810 | 811 | N19 812 | 813 | 814 | runtime 815 | semasleep 816 | 0 of 3.43s (6.14%) 817 | 818 | 819 | 820 | 821 | 822 | N19->N11 823 | 824 | 825 | 826 | 827 | 828 | 829 | 3.42s 830 | 831 | 832 | 833 | 834 | 835 | N20 836 | 837 | 838 | runtime 839 | stopm 840 | 0 of 3.40s (6.09%) 841 | 842 | 843 | 844 | 845 | 846 | N28 847 | 848 | 849 | runtime 850 | mPark 851 | 0 of 3.40s (6.09%) 852 | 853 | 854 | 855 | 856 | 857 | N20->N28 858 | 859 | 860 | 861 | 862 | 863 | 864 | 3.40s 865 | (inline) 866 | 867 | 868 | 869 | 870 | 871 | N21->N13 872 | 873 | 874 | 875 | 876 | 877 | 878 | 7.20s 879 | 880 | 881 | 882 | 883 | 884 | N22->N9 885 | 886 | 887 | 888 | 889 | 890 | 891 | 7.52s 892 | 893 | 894 | 895 | 896 | 897 | N23->N18 898 | 899 | 900 | 901 | 902 | 903 | 904 | 4.50s 905 | 906 | 907 | 908 | 909 | 910 | N25 911 | 912 | 913 | runtime 914 | (*mheap) 915 | allocSpan 916 | 0 of 6.49s (11.63%) 917 | 918 | 919 | 920 | 921 | 922 | N24->N25 923 | 924 | 925 | 926 | 927 | 928 | 929 | 6.49s 930 | 931 | 932 | 933 | 934 | 935 | N30 936 | 937 | 938 | runtime 939 | sysUsed 940 | 0 of 6.43s (11.52%) 941 | 942 | 943 | 944 | 945 | 946 | N25->N30 947 | 948 | 949 | 950 | 951 | 952 | 953 | 6.43s 954 | (inline) 955 | 956 | 957 | 958 | 959 | 960 | N26->N20 961 | 962 | 963 | 964 | 965 | 966 | 967 | 3.39s 968 | 969 | 970 | 971 | 972 | 973 | N27->N16 974 | 975 | 976 | 977 | 978 | 979 | 980 | 3.44s 981 | 982 | 983 | 984 | 985 | 986 | N29 987 | 988 | 989 | runtime 990 | notesleep 991 | 0 of 3.40s (6.09%) 992 | 993 | 994 | 995 | 996 | 997 | N28->N29 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 3.40s 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | N29->N19 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 3.40s 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | N30->N7 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 6.43s 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | -------------------------------------------------------------------------------- /img/pprof_flamegraph_cpu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/pprof_flamegraph_cpu.png -------------------------------------------------------------------------------- /img/simple-fs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/simple-fs.png -------------------------------------------------------------------------------- /img/speedscope_cpu_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/speedscope_cpu_profile.png -------------------------------------------------------------------------------- /img/tinygo-playground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/tinygo-playground.png -------------------------------------------------------------------------------- /img/tool-cover-html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/tool-cover-html.png -------------------------------------------------------------------------------- /img/tparse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikolaydubina/go-recipes/bf0514295922c6b42a0fd18a82ae1c151841563a/img/tparse.png -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | //go:generate go run github.com/nikolaydubina/mdpage -page page.yaml -o README.md 4 | 5 | func main() { /* 👋🏻 */ } 6 | --------------------------------------------------------------------------------