Skip to content

Feature Request: Provide multiple drivers for sqlite3, controlled through golang compilation options. #293

@moonD4rk

Description

@moonD4rk

Feature Description

Select the corresponding SQLite driver through Golang compilation configuration.

Currently, there are three types of drivers to consider. Through flexible configuration, during Golang compilation, the required binary version can be compiled according to the compilation options to meet the needs of different personnel.

Here we will consider go-sqlite3, modernc sqlite, and sqinn-go with smaller size respectively.

After simple testing, their differences are as follows. The full score is 5 stars (the higher the better).

  • Binary Size represents the size after compilation (difference, not final value)
  • Reliability represents reliability
  • BuildEase represents build difficulty
Method Binary Size Reliability BuildEase
go-sqlite3 (CGO) ⭐⭐⭐ 8.3 MB ⭐⭐⭐⭐⭐ ⭐⭐⭐
modernc sqlite (PureGO) ⭐ 11 MB ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
sqinn with go embed ⭐⭐⭐⭐ 6.3 MB ⭐⭐⭐
sqinn with go-bindata ⭐⭐⭐⭐⭐ 6.1 MB ⭐⭐⭐

Why is this feature needed?

go-sqlite3 (CGO): the most stable and popular driver.
modernc sqlite : uses SDK for external use, removing CGO dependencies.
go-sqinn: reduces binary size and is convenient for Red Team usage.

Checklist

Screenshots/Videos

If applicable, add screenshots or videos to help explain your proposal.

Additional Context

Add any other context or screenshots about the feature request here.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions