| CARVIEW |
Select Language
HTTP/2 200
date: Fri, 26 Dec 2025 12:16:21 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"f26873baa4960db38a3233a9d3aa4211"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com marketplace-screenshots.githubusercontent.com/ copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=nQp72rhiLdSUwd5qnDMK%2B2M28jK%2FImjtsklZ23DPSvG95gRhuTlYelcRIrZfgZKsGvVHxl55dsE%2Fy8BSE4ecCiHE3byXTznKEFFmC8R44CqL43stw4DPcpmXZGKRAzO3RtBQGMqJlb3f6MP7kQQYQ9ec%2BUKj6JoD6oho51rH%2Bof4uFUN8az%2B2LcfrkIulVJU5SZzj%2B3%2FrDuE72eKFa3Yhef1BArDxZOceury8Lx%2F%2FDRegO19Znw7O1nnss5a6f%2BuFRYHON3R7GdaBlCwks1CXw%3D%3D--hDofip%2BIwhS8y%2B7N--wM7NXP8MEXT3zz%2BncNo6CQ%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1999779385.1766751380; Path=/; Domain=github.com; Expires=Sat, 26 Dec 2026 12:16:20 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Sat, 26 Dec 2026 12:16:20 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: C26C:2DDF35:379CD4C:428EFC4:694E7C94
Releases Β· samber/lo Β· GitHub
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Skip to content
Navigation Menu
{{ message }}
-
-
Notifications
You must be signed in to change notification settings - Fork 923
Releases: samber/lo
Releases Β· samber/lo
v1.52.0
Thrilled to announce the latest release of samber/lo!
This version brings major improvements:
- A new
it/sub-package for everything related to theiterpackage added in Go 1.23. Big up to @NathanBaulch for its help on this - A new documentation -> lo.samber.dev
- Lots of micro fixes and performance improvements
- Better code quality with many more linters
β¨ A good introduction to streams in Go !
What's Changed
- fix(chunk): Copy chunk in a new slice by @samber in #648
- fix(zipx): fix the max length calculation by @samber in #649
- fix(retry): fix potential race condition in debounce callback by @samber in #650
- feature: add Mode function with tests and documentation by @ghosx in #644
- add FilterKeys for map by @rasha108bik in #631
- feat: adding FilterValues and fix FilterKeys signature by @samber in #661
#662 - fix: more consistent panic strings by @NathanBaulch in #678
- fix: minor example issues by @NathanBaulch in #676
- feat: preserve type alias in DropByIndex and WithoutBy by @NathanBaulch in #675
- feat: adding hassuffix + hasprefix by @samber in #680
- Added Cut, CutPrefix, CutSuffix by @xelavopelk in #666
- Add TrimXXX helpers by @samber in #683
- fix(string): fix division by zero by @samber in #684
- fix: avoid recover() if possible by @NathanBaulch in #685
- fix: panic when passing -1 to Drop by @NathanBaulch in #688
- perf: avoid Keyify twice in Trim by @NathanBaulch in #689
- feat: new iter package by @NathanBaulch in #672
- feat: from slice to map with index passed by @mabrarov in #697
- feat: from slice/iterator to map with index passed by @mabrarov in #698
- feat(generator): deprecate lo.Generator in favor of go "iter" package by @samber in #700
- perf: optimization of map access by @mabrarov in #692
- perf: optimize map access everywhere by @NathanBaulch in #693
Tests
Style
- lint: unit test improvements by @NathanBaulch in #674
- lint: fix CI warnings and avoid named return parameters by @NathanBaulch in #682
- lint: enable 7 more linters by @NathanBaulch in #686
- lint: enable gofumpt extra rules by @NathanBaulch in #690
- Style/rename internal rand by @samber in #701
- lint: Apply testifylint linter recommendations by @NathanBaulch in #669
- Style add golangci config by @samber in #670
- chore: minor whitespace fixes by @NathanBaulch in #677
Documentation
- New documentation for "lo" π¨ by @samber in #703
- doc: add it/mutable/parallel sub-package to llms.txt by @samber in #707
- docs: lots of various doc improvements by @samber in #706
- docs: adding go playground examples to it/ package by @samber in #708
- docs: Fix the Markdown syntax that is not displaying correctly by @mengxunQAQ in #658
- doc: add examples for find.go by @samber in #681
- docs: Fix Product and ProductBy documentation by @markhildreth-gravity in #647
- chore(deps-dev): bump typescript from 5.6.3 to 5.9.3 in /docs by @dependabot[bot] in #704
- docs: grammar improvements by @NathanBaulch in #673
Other
- chore(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in #695
- chore(deps): bump github.com/stretchr/testify from 1.11.0 to 1.11.1 by @dependabot[bot] in #663
- chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #659
- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.0 by @dependabot[bot] in
New Contributors
- @markhildreth-gravity made their first contribution in #647
- @rasha108bik made their first contribution in #631
- @xelavopelk made their first contribution in #666
- @mabrarov made their first contribution in #692
Full Changelog: v1.51.0...v1.52.0
Assets 2
7 people reacted
v1.51.0
What's Changed
- Fixed the error in the usage example of lo.Latest in readme.md by @ghosx in #627
- feat(assertions): add
AssertandAssertfby @your-diary in #638
Doc
- docs: Add a more precise description to the Ellipsis function by @mengxunQAQ in #635
- docs: Fix description for LastOrEmpty and LastOr by @vaihtovirta in #636
- docs: fix wrong variable name for mutable map example by @sunjayaali in #637
Dependencies
- fix(ci): correct cleanup deps - remove all *_test.go files using find by @d-enk in #630
- Revert "chore(deps): bump golang.org/x/text from 0.22.0 to 0.24.0" by @samber in #626
- chore(deps): bump golang.org/x/text from 0.22.0 to 0.24.0 by @dependabot in #625
- chore(deps): bump golangci/golangci-lint-action from 7 to 8 by @dependabot in #628
New Contributors
- @ghosx made their first contribution in #627
- @mengxunQAQ made their first contribution in #635
- @vaihtovirta made their first contribution in #636
- @your-diary made their first contribution in #638
Full Changelog: v1.50.0...v1.51.0
Assets 2
4 people reacted
v1.50.0
What's Changed
Here is the 50th minor version !! π₯π₯
New methods
- Implemented GroupByMap by @maryum375 in #443
- feat: Add NthOr and NthOrEmpty functions by @edvardsanta in #611
- feat: adding FilterMapToSlice by @samber in #623
- feat(mutable): adding Map, MapI, Filter, FilterI by @samber in #577
- Add ElementsMatch, ElementsMatchBy by @senago in #589
Improvements
- Perf(slice): Optimize iteration function parameters and add test cases by @shuqingzai in #587
- Preallocate result in FilterMap by @renbou in #622
Documentation
- docs: modify mutable.shuffle example code and Go Playground links by @ebina4yaka in #595
- fix: Issue 605 (README for Ternary() by @peterhoward42 in #606
- docs: add play link for ChunkEntries example in README by @oswaldom-code in #600
- doc: update CoalesceXXX demo and result by @jialeicui in #594
- docs: fix typo in readme by @ahmedabdou14 in #620
Dependencies
- chore(deps): bump golang.org/x/text from 0.21.0 to 0.22.0 by @dependabot in #590
- chore(deps): bump golang.org/x/text from 0.22.0 to 0.24.0 by @dependabot in #618
- chore(deps): bump golangci/golangci-lint-action from 6 to 7 by @dependabot in #616
New Contributors
- @maryum375 made their first contribution in #443
- @shuqingzai made their first contribution in #587
- @ebina4yaka made their first contribution in #595
- @jialeicui made their first contribution in #594
- @peterhoward42 made their first contribution in #606
- @edvardsanta made their first contribution in #611
- @ahmedabdou14 made their first contribution in #620
- @renbou made their first contribution in #622
Full Changelog: v1.49.1...v1.50.0
Assets 2
9 people reacted
v1.49.1
What's Changed
Full Changelog: v1.49.0...v1.49.1
Assets 2
5 people reacted
v1.49.0
What's Changed
- feat: add SampleBy and SamplesBy by @bramvandewalle in #516
- feat: Add IsNotNil by @haoxins in #523
- feat: Implement ChunkMap Function (#533) by @oswaldom-code in #538
- feat: Add NewThrottle by @Lee-Minjea in #427
- feat: adding FilterSliceToMap by @samber in #581
- feat: add
ProductandProductByfunctions by @JohnDevitt in #566
New Contributors
- @bramvandewalle made their first contribution in #516
- @oswaldom-code made their first contribution in #538
- @Lee-Minjea made their first contribution in #427
Full Changelog: v1.48.0...v1.49.0
Assets 2
8 people reacted
v1.48.0
What's Changed
Feature
- feat: add (Min|Max)Index(By) by @aria3ppp in #569
- feat: add UniqMap by @nicklaus-dev in #527
- feat: add CrossJoin function by @JohnDevitt in #567
- feat: Implement CoalesceOrEmptySlice Function by @chg1f in #542
- feat: adding WithoutNth by @samber in #575
- feat: deprecate lo.Reverse and move it to lom.Reverse by @samber in #576
- feat: deprecate lo.Shuffle and move it to lom.Shuffle by @samber in 699707a#comments
- feat: adding lo.BufferWithContext by @samber in #580
- feat: add SliceToSet by @nicklaus-dev in #514
- feat: add WithoutBy by @nicklaus-dev in #515
- feat: add lom.Fill by @samber
Fix
- fix: change examples for MapKeys and MapValues by @luxcgo in #341
- fix: order of GroupBy and PartitionBy by @liyishuai in #572
Refactor
- refactor RandomString function by @pigwantacat in #524
New Contributors
- @luxcgo made their first contribution in #341
- @haoxins made their first contribution in #522
- @muya made their first contribution in #521
- @NathanBaulch made their first contribution in #519
- @jiz4oh made their first contribution in #535
- @guyareco2 made their first contribution in #537
- @pigwantacat made their first contribution in #524
- @snamiki1212 made their first contribution in #541
- @dependabot made their first contribution in #554
- @JasonnnW3000 made their first contribution in #571
- @liyishuai made their first contribution in #572
- @aria3ppp made their first contribution in #569
- @sunjayaali made their first contribution in #544
- @SnowOnion made their first contribution in #543
- @nicklaus-dev made their first contribution in #527
- @JohnDevitt made their first contribution in #567
- @chg1f made their first contribution in #542
Full Changelog: v1.47.0...v1.48.0
Assets 2
4 people reacted
v1.47.0
What's Changed
- feat: Improve Substring by @liujundezhanghao in #496
- doc: Wrong method reference and output in readme by @ColeZia in #497
- doc: Fix documentation for Duration3 by @gecko655 in #502
- feat: add FromSlicePtr by @mash in #217
- feat: adding FromSlicePtrOr by @samber in #506
- feat: Keys+Values: accept multiple maps (vaargs) - Adding UniqKeys+UniqValues by @shivamrazorpay in #503
- doc: Update foreachwhile readme.md by @Sianao in #508
New Contributors
- @liujundezhanghao made their first contribution in #496
- @ColeZia made their first contribution in #497
- @gecko655 made their first contribution in #502
- @mash made their first contribution in #217
- @shivamrazorpay made their first contribution in #503
Full Changelog: v1.46.0...v1.47.0
Assets 2
10 people reacted
v1.46.0
What's Changed
- fix: chunk memory leak, bug fix by @mihir20 in #491
- feat: add WaitForWithContext by @ccoVeille in #480
- add ForEachCondition implement by @Sianao in #485
New Contributors
- @mihir20 made their first contribution in #491
- @ccoVeille made their first contribution in #480
- @Sianao made their first contribution in #485
Full Changelog: v1.45.0...v1.46.0
Assets 2
9 people reacted
v1.45.0
Assets 2
6 people reacted
v1.44.0
What's Changed
- feat: Add slice Splice an element or multiple elements at index i. by @wenlingang in #371
- feat: Make Filter() preserve type. by @FGasper in #365
- feat: Added DropByIndex helper for slice by @phith0n in #398
- feat: upgrade to math/rand/v2 by @samber in #483
- chore: remove
golang.org/x/expsince it doesn't follow go 1 compatibility promise by @trim21 in #478
New Contributors
- @wenlingang made their first contribution in #371
- @jason-zhj made their first contribution in #376
- @FGasper made their first contribution in #365
- @phith0n made their first contribution in #398
Full Changelog: v1.43.0...v1.44.0
Assets 2
3 people reacted
Previous Next
You canβt perform that action at this time.