Building a High-Performance Openapi Parser in Go
Posted26 days agoActive22 days ago
speakeasy.comTech Discussionstory
informativepositive
Debate
20/100
Api_designGoAPI Parsing
Key topics
Api_design
Go
API Parsing
Discussion Activity
Moderate engagementFirst comment
3d
Peak period
9
72-78h
Avg / period
5
Key moments
- 01Story posted
Dec 15, 2025 at 5:03 AM EST
26 days ago
Step 01 - 02First comment
Dec 18, 2025 at 4:24 AM EST
3d after posting
Step 02 - 03Peak activity
9 comments in 72-78h
Hottest window of the conversation
Step 03 - 04Latest activity
Dec 18, 2025 at 11:00 AM EST
22 days ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 46272454Type: storyLast synced: 12/18/2025, 3:50:32 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
This is really unfortunate because Postman requires you to have an account and log in to download or export these to another format.
Prediction: Postman produces a paid MCP for API lookup in the near future
- history
- grouping/folders
- some very basic api key management
Is that too much to ask or does every company need to indefinitely grow?
No affiliation, just a long term fan after years of frustration with Postman and Insomnia.
Something that should have just stayed foss.
Doesn't really strike me as the load that requires writing a high-performance solution from scratch, especially on modern hardware.
It probably needs better wording because it's sort of the wrong complexity metric. Many customers have gigantic OpenAPI documents with large numbers of deep and wide JSON Schemas that contain things like allOf/oneOf/anyOf sub-schemas, all of which need to be parsed into an object model for use by downstream tooling (e.g. code generation). For those customers, we want generation time to be super speedy and since this is a core aspect of Speakeasy, it made a ton of sense to us to take full control of OpenAPI parsing and optimize it.
When I go to Reader mode, the CPU goes down to less than 20%, scrolling works great, and the fan goes off.
Did they implement scrolling using JavaScript?
> In a statically typed language like Go, this is usually handled by using interface{} (which loses type safety) or complex pointer logic.
Having worked on JSON Schema parsing in go very recently, I disagree with this assessment. You create a `Type` in one of a few (2?) ways, depending on your specific needs. The simple method being that it's a `[]string` under the hood with a custom UnmarshalJSON receiver function. If reproducing the exact input structure is important you can cover that by making `Type` into a struct with a `[]string` and a `bool` to track if it was originally a single or an array. Then you have custom MarshalJSON and UnmarshalJSON receiver functions. That is, in fact, how I've seen multiple existing go JSON Schema libraries handle that variable type. No use of `any` or complex pointers.