Four resource specifications under OpenServer, one per thing that is negotiable when a server is bought. Each is the block of an OpenServer offer (compute, memory, gpu, network) written down on its own, with the units OpenServer 0.1 already uses (vcpu, cores, ram_mb, vram_mb, bandwidth_mbps, transfer_gb, ipv4, ipv6) and one new shape shared by all four: `range`, the field a buyer can dial at checkout, its bounds, the step and what a step costs on top of the base price. - OpenCPU: threads against cores, the processor by its vendor name, dedicated, shared or burstable allocation. - OpenMemory: mebibytes, DDR generation, ECC as three states, reserved, balloonable or shared; wins over compute.ram_mb when both are present. - OpenGPU: the card by its vendor name, count and VRAM per device, interconnect, passthrough, MIG, vGPU or shared access. - OpenBandwidth: port, four meters (transfer, unmetered, percentile, flat), overage, IPv4 and IPv6 addresses as a priced resource. A provider that sells only one resource lists it as an OpenServer offer and may serve the same document at /.well-known/<slug>.json. Landing pages share one component (resource-spec-page.tsx). Registered in DOC_SLUGS, NAV, STATIC_ROUTES and llms.txt. OpenServer, OpenFile and OpenDisk arrive in sibling PRs. Claude-Session: https://claude.ai/code/session_014cmNRtR2vL1p89dbVQ7FZJ Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
6.4 KiB
OpenMemory
OpenMemory is the shape of one resource in a server purchase: the memory. It says how much RAM an offer has, what kind, whether it is error-corrected, whether it is reserved for the buyer or balloonable, and how much more a buyer may add at checkout and for how much. It is the memory block of an OpenServer offer, written down on its own so a configurator that sells RAM by the gigabyte, a provider that sells memory-optimised instances and a directory that filters on it all mean the same thing by the same key. It is maintained by Profullstack, Inc. as part of the LogicSRC open-standards surface.
Status: 0.1. One of five resource specifications under OpenServer: OpenCPU, OpenMemory, OpenDisk, OpenGPU and OpenBandwidth. Each describes one thing that is negotiable when a server is bought.
Slug: openmemory
The problem
Memory is the resource most often bought in increments and least often described. A dedicated-server configurator offers 64, 128 or 256 GB at three prices, and the difference between them is the whole reason to pick the box, but a scraper sees the default and a directory lists one number. "8 GB" on a VPS may be 8 GiB reserved, or 8 GB of which the host reclaims half under pressure. Whether the DIMMs are error-corrected decides whether a database belongs on the machine, and almost no listing says.
The memory line of a spec sheet is short. This document makes it say what it means.
Terms
- The memory block is the
memoryobject on an OpenServer offer, or the same object served on its own. - Reserved memory is backed by physical memory the host will not reclaim. Balloonable memory may be reclaimed by the host under pressure. Shared memory is oversubscribed with neighbours.
- A range is what the buyer may change at checkout, with the price of changing it.
The memory block
{
"memory": {
"ram_mb": 65536,
"type": "DDR5",
"ecc": true,
"speed_mts": 4800,
"channels": 8,
"allocation": "reserved",
"swap_mb": 0,
"hugepages": true,
"range": {
"key": "ram_mb",
"min": 32768,
"max": 1048576,
"step": 32768,
"price": { "amount": 12, "currency": "USD", "interval": "month", "per": 32768 }
}
}
}
The smallest valid block states the size:
{ "memory": { "ram_mb": 8192 } }
The rules, and every one degrades:
ram_mbis required. It is the memory the guest sees, in mebibytes, the same unit OpenServer uses incompute.ram_mb. 8 GiB is 8192. A provider that sells in decimal gigabytes converts once when it writes the file, so every reader adds the same numbers.typeis the memory technology as the vendor names it:DDR4,DDR5,LPDDR5,HBM3, or the provider's own word.speed_mtsis the rated transfer rate in megatransfers per second.channelsis the populated channel count on a dedicated box. All three are stated, not measured.eccis a boolean. Absent means unstated, and a directory that lets a buyer filter on ECC shows unstated rows as unstated, never as false.allocationis one ofreserved,balloonable,shared. Absent means unstated. A dedicated server isreservedby nature and may say so.swap_mbis swap the provider configures by default, in mebibytes;0means none and absent means unstated.hugepagesis whether the buyer may use huge pages, a boolean.rangeis the negotiable part.keyisram_mb,min,maxandstepbound it in mebibytes, andpriceis the cost perpermebibytes at the offer's interval, on top of the base price. The example above says memory is sold in 32 GiB steps at 12 USD a month each. An offer with norangeis sold as stated.- This block wins over
compute.ram_mb. OpenServer 0.1 putsram_mbinsidecompute. A provider may keep it there for readers that predate this document; when amemoryblock is present, itsram_mbis the one a reader uses. - Unknown keys are kept. A provider may say more; a reader passes it through under the provider's key.
Memory as its own offer
Memory is rarely sold alone, but it is sold as an increment, and the increment is an offer: a RAM upgrade on a configurator, a memory-optimised tier that differs from the base tier only here, a reservation of memory on a platform that bills it separately from compute. Each is an OpenServer offer with a memory block and a price:
{
"id": "ram-32",
"name": "32 GB RAM upgrade",
"kind": "dedicated",
"memory": { "ram_mb": 32768, "type": "DDR5", "ecc": true },
"price": { "amount": 12, "currency": "USD", "interval": "month" }
}
A provider whose file is only memory offers may serve it at /.well-known/openmemory.json; the shape is OpenServer's and the name says what is in it. A reader that only wants memory filters offers on the presence of a memory block.
What a directory does with it
- Shows mebibytes as the provider's unit. Store
ram_mb; display 8 GiB or 8 GB as the provider's page does, and say which. - Filters on ECC as three states, yes, no and unstated.
- Prices the range. A configurator's 64, 128 and 256 GB choices are one offer with a range, and a directory shows the base and the step price rather than three rows.
- Reads
memorybeforecompute.ram_mband never sums the two.
What is deliberately absent
No bandwidth or latency figures. speed_mts is the DIMM rating. Measured memory bandwidth is a benchmark, and benchmarks are another document's business.
No persistent memory tier. Optane-style persistent memory and CXL-attached memory are storage or memory depending on the provider; a provider states them under its own key until there is a second one to agree with.
No per-process limits. cgroup memory limits on a container platform are the platform's terms, linked from the offer's url.
Related standards
- OpenServer: the descriptor and the offer this block sits in.
- OpenCPU, OpenDisk, OpenGPU, OpenBandwidth: the other four resources of a purchase, each with the same
rangeshape.
Version history
| Version | Date | Change |
|---|---|---|
| 0.1 | 2026-09-13 | First publication: the memory block, ECC as three states, three allocations, the range, precedence over compute.ram_mb. |
License
The specification text is CC BY 4.0. Serve it, copy it, extend it.