Hiperspace 2.5.13
Prefix ReservedSee the version list below for details.
dotnet add package Hiperspace --version 2.5.13
NuGet\Install-Package Hiperspace -Version 2.5.13
<PackageReference Include="Hiperspace" Version="2.5.13" />
<PackageVersion Include="Hiperspace" Version="2.5.13" />
<PackageReference Include="Hiperspace" />
paket add Hiperspace --version 2.5.13
#r "nuget: Hiperspace, 2.5.13"
#:package Hiperspace@2.5.13
#addin nuget:?package=Hiperspace&version=2.5.13
#tool nuget:?package=Hiperspace&version=2.5.13
Hiperspace
Hiperspace is an Object technology that uses a key-addressable store to expand an application data-model beyond the limits of memory that can be directly referenced in main memory.
Elements are not duplicated or changing to match database shapes.
Elements are serialized directly using Protocol Buffers to and from key/value structure for storage in memory stores including CXL
expanded and pooled memory, shared cache , local SSD or key-value durable databases.
Elements that are not currently being used are released from main memory, and transparently (and quickly) reloaded when referenced. Memory stores allows petabytes of data to be addressed.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- protobuf-net.Core (>= 3.2.56)
- System.Numerics.Tensors (>= 10.0.0)
-
net8.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- protobuf-net.Core (>= 3.2.56)
- System.Numerics.Tensors (>= 10.0.0)
-
net9.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- protobuf-net.Core (>= 3.2.56)
- System.Numerics.Tensors (>= 10.0.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Hiperspace:
| Package | Downloads |
|---|---|
|
Hiperspace.Rocks
HiperSpace RocksDB adaptor |
|
|
Hiperspace.Heap
Hiperspace heap store for session, edge and testing purposes |
|
|
Hiperspace.SQL
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.5.32 | 31 | 1/30/2026 |
| 2.5.29 | 133 | 1/17/2026 |
| 2.5.28 | 210 | 12/31/2025 |
| 2.5.26 | 1,292 | 12/21/2025 |
| 2.5.21 | 3,460 | 12/10/2025 |
| 2.5.18 | 5,490 | 12/3/2025 |
| 2.5.13 | 5,010 | 11/24/2025 |
| 2.5.8 | 4,989 | 11/15/2025 |
| 2.5.2 | 5,024 | 11/6/2025 |
| 2.5.1 | 4,971 | 10/23/2025 |
| 2.5.0 | 5,013 | 10/20/2025 |
| 2.4.6 | 5,025 | 9/23/2025 |
| 2.4.4 | 5,078 | 8/7/2025 |
| 2.4.2 | 4,964 | 7/28/2025 |
| 2.4.0 | 5,015 | 7/10/2025 |
| 2.3.8 | 5,019 | 7/1/2025 |
| 2.3.7 | 5,006 | 6/18/2025 |
| 2.3.3 | 5,026 | 6/5/2025 |
| 2.2.2 | 5,035 | 5/5/2025 |
| 2.2.1 | 5,100 | 4/14/2025 |
| 2.2.0 | 4,961 | 3/29/2025 |
| 2.1.3 | 5,106 | 3/5/2025 |
| 2.1.1 | 5,000 | 2/15/2025 |
| 2.1.0 | 4,975 | 1/24/2025 |
| 2.0.0 | 4,945 | 1/14/2025 |
| 1.3.9 | 4,986 | 11/15/2024 |
| 1.3.3 | 4,962 | 11/1/2024 |
| 1.3.1 | 5,030 | 10/18/2024 |
| 1.3.0 | 5,016 | 10/5/2024 |
| 1.2.31 | 5,030 | 9/15/2024 |
| 1.2.26 | 4,999 | 9/1/2024 |
| 1.2.18 | 4,948 | 8/6/2024 |
| 1.2.12 | 4,946 | 7/26/2024 |
| 1.2.9 | 4,991 | 7/19/2024 |
| 1.2.8 | 4,999 | 7/15/2024 |
| 1.2.4 | 5,023 | 7/4/2024 |
| 1.2.0 | 5,028 | 5/30/2024 |
| 1.0.46 | 4,955 | 5/11/2024 |
| 1.0.40 | 4,978 | 4/22/2024 |
| 1.0.34 | 5,032 | 3/14/2024 |
| 1.0.28 | 5,051 | 2/26/2024 |
| 1.0.27 | 5,017 | 2/16/2024 |
| 1.0.24 | 5,071 | 1/11/2024 |
| 1.0.23 | 5,063 | 1/1/2024 |
| 1.0.1 | 5,034 | 11/18/2023 |
https://www.cepheis.com/hiperspace/20251124
## Overview
This release adds the `@AlternateIndex` property to explicitly create an index for views and ad hoc queries that do not *or cannot* be defined in the normal way of using an access path.
### Path Index
Normally indexes are created in `Hiperspace` by defining an extent that uses an attribute to retrieve a list of elements. The following hilang model defines a *Person* with a *Parent* and an extension *Children* that retrieves all *Person* that have a *Parrent* that refers to this *person*.
```
entity Person (Id : Guid) {Parent : Person} [Children : Person (Parent = this)];
```
The *Children* extent causes an index to be created on *Parent* so that access to *Children* is fast and does not require an scan or all *Person* elements
### Alternate Index
The following model defines two entities {*Product, Order*} that can be viewed as **nodes** in a **graph**. The segment *Item* defined the details of the *Order* with reference to the *Product* being ordered.
```
entity Product = Node(...) (Id : Guid);
entity Order = Node (...) (Id : Guid) [Items : Item];
segment Item = Edges (From = owner, To = Product, FromType = "Purchase", ToType ="Purchased")
(Line : Int32)
{
@AlternateIndex
Product : Product,
Quantity : Decimal
};
```
In a **UML** diagram, *Order* aggregates *Item*, and *Item* is associated with *Product*. In a **Graph** diagram *Order* and *Product* are both `Nodes` with two `Edge` between them for "Purchase" and "Purchased".
[image]Sites/hiperspace/sample/orderitem.png[/image]
*Product* cannot refer to *Item* because it is a `segment` of its owner (*in this case Order*), and cannot therefore define a *path* from *order* to *Item*. When viewed as a **graph** the Order->(Purchase)->Product `Edge` uses the *Item* key to find all edges, but the Product->(Purchased)->Order `Edge` needs an `@AlternateIndex` to avoid a scan of all *Items*.
-----
## Result<> enhancement
The Hiperspace [Result](https://github.com/channell/Hiperspace/blob/master/src/Hiperspace/Result.cs) type has been updated to include *Rust-Style* continuation monads that can optionally follow a `.Bind()` (*bind an element with hiperspace*) with:
* `.Then` chaining function
* `.Else` error handling function
```
write.Roles
.Bind(new Role
{
Name = role,
RoleName = role,
})
.Then(r =>
{
Log?.LogInformation($"Added missing role {r.Name}");
return Result.Ok(r);
})
.Else(r => Log?.LogError($"Failed to bind role {r.Value.Name} with status {r.Status} and reason {r.Reason}"));
```