brandur opened a new issue, #696:
URL: https://github.com/apache/iceberg-go/issues/696

   ### Feature Request / Improvement
   
   Given an empty project with Iceberg-go as its only dependency:
   
   ``` sh
   cat main.go
   ```
   ```go
   package main
   
   import (
           _ "github.com/apache/iceberg-go"
           _ "github.com/apache/iceberg-go/catalog"
           _ "github.com/apache/iceberg-go/catalog/rest"
           _ "github.com/apache/iceberg-go/io"
           _ "github.com/apache/iceberg-go/table"
   )
   
   func main() {
   }
   ```
   
   ```sh
   head go.mod
   ```
   ```
   module github.com/brandur/iceberg-go-test
   
   go 1.25.6
   
   require github.com/apache/iceberg-go v0.4.1-0.20260123180146-3ce3b4bb51c0
   
   require (
           atomicgo.dev/cursor v0.2.0 // indirect
           atomicgo.dev/keyboard v0.2.9 // indirect
           atomicgo.dev/schedule v0.1.0 // indirect
   ```
   
   Iceberg-go adds ~1s of compile overhead (on my commodity laptop). This might 
not be the end of the world, but you end up soaking it up on every test run 
compile and test run, which is fairly painful for any projects using Iceberg-go:
   
   ```
   $ go test .
   ok      github.com/brandur/iceberg-go-test      0.781s [no tests to run]
   ```
   
   The project has about 130 dependencies. Manually inspecting the list, a big 
number of them are from the three major cloud providers (AWS, Azure, Google). 
Being able to jettison those would probably help a lot.
   
   An approach that we took in one of our projects (River) is to use a "driver" 
system wherein you have sub-modules for major dependencies so users can pull 
them in piece by piece. e.g.
   
   https://github.com/riverqueue/river/tree/master/riverdriver
   
   It's far from perfect as Go's multi-module handling leaves a lot to be 
desired, but it works reasonably well, and a similar approach would probably 
help Iceberg-go in the longer run. Thoughts?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to