SubEtha.psd1
|
@{ RootModule = 'SubEtha.psm1' ModuleVersion = '0.4.1' CompatiblePSEditions = @('Desktop', 'Core') GUID = '17623a25-8516-42f6-b752-759fc4d553cd' Author = 'Markus Newton' CompanyName = 'Variably Constant' Copyright = 'Copyright (c) 2026 Markus Newton' Description = 'Shared memory between processes, as PowerShell cmdlets and objects. Rings, queues, channels, locks, atomics, counters and shared collections that several processes on one machine read and write at the same time, each backed by a memory-mapped file that outlives the session that made it. A New- cmdlet makes one and an Open- cmdlet attaches to one another process has already made; the object either one returns carries the operations as methods, and Send-SubEthaItem and Receive-SubEthaItem move items through the pipeline. Bytes cross as byte[] pinned in place rather than copied, and a lock or a hold comes back as an object that releases on Release(), Dispose() or collection. Every cmdlet answers to a shorter name with the SE prefix. Bound directly to Rust with PoWerRuSt (pwrs), Rust bindings for writing PowerShell binary modules in the spirit of PyO3: the cmdlets are the library, not a wrapper over a command line. Windows x64 and Linux x64 in one module, on PowerShell 7 and Windows PowerShell 5.1. Source and issues at https://github.com/Variably-Constant/SubEtha; the binding framework at https://github.com/Variably-Constant/PWRS and https://crates.io/crates/PoWerRuSt.' PowerShellVersion = '5.1' FormatsToProcess = @('SubEtha.Format.ps1xml') FunctionsToExport = @() CmdletsToExport = @('New-SubEthaAtomic', 'Open-SubEthaAtomic', 'New-SubEthaRegion', 'Open-SubEthaRegion', 'New-SubEthaCell', 'Open-SubEthaCell', 'New-SubEthaVec', 'Open-SubEthaVec', 'New-SubEthaSharedArc', 'Open-SubEthaSharedArc', 'New-SubEthaLazyValue', 'Open-SubEthaLazyValue', 'New-SubEthaBitVec', 'Open-SubEthaBitVec', 'New-SubEthaSpscRing', 'Open-SubEthaSpscRing', 'New-SubEthaBroadcastRing', 'Open-SubEthaBroadcastRing', 'New-SubEthaCapacityRing', 'Open-SubEthaCapacityRing', 'New-SubEthaLocaleRing', 'Open-SubEthaLocaleRing', 'New-SubEthaRing', 'Open-SubEthaRing', 'New-SubEthaReorderWindow', 'New-SubEthaStack', 'Open-SubEthaStack', 'New-SubEthaDeque', 'Open-SubEthaDeque', 'New-SubEthaPubSub', 'Open-SubEthaPubSub', 'New-SubEthaLamportPair', 'New-SubEthaFrameRegion', 'Open-SubEthaFrameRegion', 'New-SubEthaArena', 'Open-SubEthaArena', 'New-SubEthaLinkedList', 'Open-SubEthaLinkedList', 'New-SubEthaSlab', 'Open-SubEthaSlab', 'New-SubEthaBTreeMap', 'Open-SubEthaBTreeMap', 'New-SubEthaHashMap', 'Open-SubEthaHashMap', 'New-SubEthaMpscPool', 'New-SubEthaMpmcGrid', 'New-SubEthaNotifierSet', 'New-SubEthaLeaderElection', 'Open-SubEthaLeaderElection', 'New-SubEthaHolderTable', 'Open-SubEthaHolderTable', 'New-SubEthaHeartbeat', 'Open-SubEthaHeartbeat', 'New-SubEthaEpochBarrier', 'Open-SubEthaEpochBarrier', 'New-SubEthaCondvar', 'Open-SubEthaCondvar', 'Wait-SubEthaCondition', 'New-SubEthaFenceClock', 'Open-SubEthaFenceClock', 'New-SubEthaEpochs', 'Open-SubEthaEpochs', 'New-SubEthaRWLock', 'Open-SubEthaRWLock', 'New-SubEthaSemaphore', 'Open-SubEthaSemaphore', 'New-SubEthaOwnerLease', 'Open-SubEthaOwnerLease', 'New-SubEthaBloomFilter', 'Open-SubEthaBloomFilter', 'Measure-SubEthaBloomSize', 'New-SubEthaBlockedBloomFilter', 'Open-SubEthaBlockedBloomFilter', 'New-SubEthaHyperLogLog', 'Open-SubEthaHyperLogLog', 'New-SubEthaCountMinSketch', 'Open-SubEthaCountMinSketch', 'Measure-SubEthaSketchSize', 'New-SubEthaHistogram', 'Open-SubEthaHistogram', 'New-SubEthaRateLimiter', 'Open-SubEthaRateLimiter', 'New-SubEthaLruCache', 'Open-SubEthaLruCache', 'New-SubEthaReservoir', 'Open-SubEthaReservoir', 'New-SubEthaHandleTable', 'Open-SubEthaHandleTable', 'New-SubEthaTimePointTile', 'Open-SubEthaTimePointTile', 'New-SubEthaVersionChain', 'Open-SubEthaVersionChain', 'New-SubEthaVersionedSlab', 'Open-SubEthaVersionedSlab', 'New-SubEthaVersionedMap', 'Open-SubEthaVersionedMap', 'New-SubEthaLanedMap', 'Open-SubEthaLanedMap', 'New-SubEthaTopologyMap', 'Open-SubEthaTopologyMap', 'New-SubEthaGraph', 'Open-SubEthaGraph', 'New-SubEthaUniversal', 'Open-SubEthaUniversal', 'New-SubEthaTower', 'Open-SubEthaTower', 'New-SubEthaChannel', 'Open-SubEthaChannel', 'New-SubEthaAdaptiveQueue', 'New-SubEthaWorkQueue', 'Open-SubEthaWorkQueue', 'New-SubEthaKvMap', 'New-SubEthaQosPolicy', 'New-SubEthaTinyBloom', 'New-SubEthaFineBloom', 'New-SubEthaClock', 'New-SubEthaCausalClock', 'New-SubEthaSensSender', 'New-SubEthaSensReceiver', 'New-SubEthaLossKind', 'New-SubEthaLossBursts', 'New-SubEthaTiming', 'New-SubEthaRoundTripShape', 'New-SubEthaPeriodicity', 'New-SubEthaCapacity', 'New-SubEthaForecast', 'New-SubEthaPathChanges', 'New-SubEthaTcpBridgeClient', 'New-SubEthaTcpBridgeServer', 'New-SubEthaSelfSignedCert', 'New-SubEthaQuicBridgeClient', 'New-SubEthaQuicBridgeServer', 'Get-SubEthaTransport', 'Send-SubEthaItem', 'Receive-SubEthaItem') VariablesToExport = @() AliasesToExport = @('New-SEAtomic', 'Open-SEAtomic', 'New-SERegion', 'Open-SERegion', 'New-SECell', 'Open-SECell', 'New-SEVec', 'Open-SEVec', 'New-SESharedArc', 'Open-SESharedArc', 'New-SELazyValue', 'Open-SELazyValue', 'New-SEBitVec', 'Open-SEBitVec', 'New-SESpscRing', 'Open-SESpscRing', 'New-SEBroadcastRing', 'Open-SEBroadcastRing', 'New-SECapacityRing', 'Open-SECapacityRing', 'New-SELocaleRing', 'Open-SELocaleRing', 'New-SERing', 'Open-SERing', 'New-SEReorderWindow', 'New-SEStack', 'Open-SEStack', 'New-SEDeque', 'Open-SEDeque', 'New-SEPubSub', 'Open-SEPubSub', 'New-SELamportPair', 'New-SEFrameRegion', 'Open-SEFrameRegion', 'New-SEArena', 'Open-SEArena', 'New-SELinkedList', 'Open-SELinkedList', 'New-SESlab', 'Open-SESlab', 'New-SEBTreeMap', 'Open-SEBTreeMap', 'New-SEHashMap', 'Open-SEHashMap', 'New-SEMpscPool', 'New-SEMpmcGrid', 'New-SENotifierSet', 'New-SELeaderElection', 'Open-SELeaderElection', 'New-SEHolderTable', 'Open-SEHolderTable', 'New-SEHeartbeat', 'Open-SEHeartbeat', 'New-SEEpochBarrier', 'Open-SEEpochBarrier', 'New-SECondvar', 'Open-SECondvar', 'Wait-SECondition', 'New-SEFenceClock', 'Open-SEFenceClock', 'New-SEEpochs', 'Open-SEEpochs', 'New-SERWLock', 'Open-SERWLock', 'New-SESemaphore', 'Open-SESemaphore', 'New-SEOwnerLease', 'Open-SEOwnerLease', 'New-SEBloomFilter', 'Open-SEBloomFilter', 'Measure-SEBloomSize', 'New-SEBlockedBloomFilter', 'Open-SEBlockedBloomFilter', 'New-SEHyperLogLog', 'Open-SEHyperLogLog', 'New-SECountMinSketch', 'Open-SECountMinSketch', 'Measure-SESketchSize', 'New-SEHistogram', 'Open-SEHistogram', 'New-SERateLimiter', 'Open-SERateLimiter', 'New-SELruCache', 'Open-SELruCache', 'New-SEReservoir', 'Open-SEReservoir', 'New-SEHandleTable', 'Open-SEHandleTable', 'New-SETimePointTile', 'Open-SETimePointTile', 'New-SEVersionChain', 'Open-SEVersionChain', 'New-SEVersionedSlab', 'Open-SEVersionedSlab', 'New-SEVersionedMap', 'Open-SEVersionedMap', 'New-SELanedMap', 'Open-SELanedMap', 'New-SETopologyMap', 'Open-SETopologyMap', 'New-SEGraph', 'Open-SEGraph', 'New-SEUniversal', 'Open-SEUniversal', 'New-SETower', 'Open-SETower', 'New-SEChannel', 'Open-SEChannel', 'New-SEAdaptiveQueue', 'New-SEWorkQueue', 'Open-SEWorkQueue', 'New-SEKvMap', 'New-SEQosPolicy', 'New-SETinyBloom', 'New-SEFineBloom', 'New-SEClock', 'New-SECausalClock', 'New-SESensSender', 'New-SESensReceiver', 'New-SELossKind', 'New-SELossBursts', 'New-SETiming', 'New-SERoundTripShape', 'New-SEPeriodicity', 'New-SECapacity', 'New-SEForecast', 'New-SEPathChanges', 'New-SETcpBridgeClient', 'New-SETcpBridgeServer', 'New-SESelfSignedCert', 'New-SEQuicBridgeClient', 'New-SEQuicBridgeServer', 'Get-SETransport', 'Send-SEItem', 'Receive-SEItem') PrivateData = @{ PSData = @{ Tags = @('pwrs', 'powershell', 'ipc', 'shared-memory', 'cross-process', 'cmdlet', 'bindings'); LicenseUri = 'https://github.com/Variably-Constant/SubEtha/blob/main/LICENSE-MIT'; ProjectUri = 'https://github.com/Variably-Constant/SubEtha'; IconUri = 'https://raw.githubusercontent.com/Variably-Constant/SubEtha/main/assets/icon.png'; ReleaseNotes = 'First release. 135 cmdlets over the shared-memory families: atomics and counters, rings and queues, channels and pub/sub, locks and latches, maps and slabs and lists, the probabilistic sketches, the versioned structures, the link sensing that reports loss, timing and capacity on a path, and the TCP and QUIC bridges. Get-Help carries a synopsis, a description, help on every parameter and an example for each of them. Every cmdlet, class, enum and method the module exports is reached by the Pester suite, and a gate suite fails the run when one is not: 178 tests pass in PowerShell 7.6.6 and Windows PowerShell 5.1 on Windows x64, and in PowerShell 7.6.5 on Ubuntu 24.04 on Linux x64. Both native libraries ship in the one module folder.' } } } |