aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Hashing.Portable/src/ManagedHash.cs24
-rw-r--r--lib/Hashing.Portable/src/VNLib.Hashing.Portable.csproj29
-rw-r--r--lib/Net.Http/src/VNLib.Net.Http.csproj16
-rw-r--r--lib/Net.Messaging.FBM/src/Client/FBMClientConfig.cs2
-rw-r--r--lib/Net.Messaging.FBM/src/VNLib.Net.Messaging.FBM.csproj25
-rw-r--r--lib/Net.Rest.Client/src/VNLib.Net.Rest.Client.csproj21
-rw-r--r--lib/Net.Transport.SimpleTCP/src/VNLib.Net.Transport.SimpleTCP.csproj17
-rw-r--r--lib/Plugins.Essentials.ServiceStack/src/VNLib.Plugins.Essentials.ServiceStack.csproj11
-rw-r--r--lib/Plugins.Essentials/src/EventProcessor.cs15
-rw-r--r--lib/Plugins.Essentials/src/Sessions/SessionBase.cs2
-rw-r--r--lib/Plugins.Essentials/src/Sessions/SessionInfo.cs39
-rw-r--r--lib/Plugins.Essentials/src/VNLib.Plugins.Essentials.csproj18
-rw-r--r--lib/Plugins.PluginBase/src/VNLib.Plugins.PluginBase.csproj20
-rw-r--r--lib/Plugins.Runtime/src/VNLib.Plugins.Runtime.csproj14
-rw-r--r--lib/Plugins/src/VNLib.Plugins.csproj21
-rw-r--r--lib/Utils/README.md7
-rw-r--r--lib/Utils/src/VNLib.Utils.csproj21
-rw-r--r--lib/WinRpMalloc/src/package.json9
18 files changed, 228 insertions, 83 deletions
diff --git a/lib/Hashing.Portable/src/ManagedHash.cs b/lib/Hashing.Portable/src/ManagedHash.cs
index b4e5f09..dd0a8af 100644
--- a/lib/Hashing.Portable/src/ManagedHash.cs
+++ b/lib/Hashing.Portable/src/ManagedHash.cs
@@ -31,12 +31,36 @@ using VNLib.Utils.Memory;
namespace VNLib.Hashing
{
+ /// <summary>
+ /// Defines a hashing algorithm to use when computing a hash.
+ /// </summary>
public enum HashAlg
{
+ /// <summary>
+ /// Unused type, will cause a computation method to raise an argument exception when used.
+ /// </summary>
+ None,
+ /// <summary>
+ /// Defines the SHA-512 hashing algorithm
+ /// </summary>
SHA512 = 64,
+ /// <summary>
+ /// Defines the SHA-384 hashing algorithm
+ /// </summary>
SHA384 = 48,
+ /// <summary>
+ /// Defines the SHA-256 hashing algorithm
+ /// </summary>
SHA256 = 32,
+ /// <summary>
+ /// Defines the SHA-1 hashing algorithm
+ /// WARNING: This hashing method is considered insecure and cannot be corrected.
+ /// </summary>
SHA1 = 20,
+ /// <summary>
+ /// Defines the MD5 hashing algorithm
+ /// WARNING: This hashing method is considered insecure and cannot be corrected.
+ /// </summary>
MD5 = 16
}
diff --git a/lib/Hashing.Portable/src/VNLib.Hashing.Portable.csproj b/lib/Hashing.Portable/src/VNLib.Hashing.Portable.csproj
index 7015217..7630f6f 100644
--- a/lib/Hashing.Portable/src/VNLib.Hashing.Portable.csproj
+++ b/lib/Hashing.Portable/src/VNLib.Hashing.Portable.csproj
@@ -1,23 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
- <PropertyGroup>
-
- <TargetFramework>net6.0</TargetFramework>
-
- <Version>1.0.1.3</Version>
-
+ <PropertyGroup>
+ <TargetFramework>net6.0</TargetFramework>
+ <Version>1.0.1.3</Version>
<AssemblyName>VNLib.Hashing.Portable</AssemblyName>
<RootNamespace>VNLib.Hashing</RootNamespace>
-
- <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
-
+ <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<Nullable>enable</Nullable>
<AnalysisLevel>latest-all</AnalysisLevel>
<ProduceReferenceAssembly>True</ProduceReferenceAssembly>
- <GenerateDocumentationFile>True</GenerateDocumentationFile>
-
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
+ <GenerateDocumentationFile>True</GenerateDocumentationFile>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
</PropertyGroup>
@@ -25,8 +17,10 @@
<Product>VNLib Hashing Function/Alg Library</Product>
<Description>Provides managed and random cryptocraphic hashing helper classes, including complete Argon2 password hashing.</Description>
<Authors>Vaughn Nugent</Authors>
+ <Company>Vaughn Nugent</Company>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources</PackageProjectUrl>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Core</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core/tree/main/lib/Hashing.Portable</RepositoryUrl>
</PropertyGroup>
<ItemGroup>
@@ -41,6 +35,13 @@
</ItemGroup>
<ItemGroup>
+ <None Include="..\README.md">
+ <Pack>True</Pack>
+ <PackagePath>\</PackagePath>
+ </None>
+ </ItemGroup>
+
+ <ItemGroup>
<ProjectReference Include="..\..\Utils\src\VNLib.Utils.csproj" />
</ItemGroup>
diff --git a/lib/Net.Http/src/VNLib.Net.Http.csproj b/lib/Net.Http/src/VNLib.Net.Http.csproj
index f93621e..06ba5e1 100644
--- a/lib/Net.Http/src/VNLib.Net.Http.csproj
+++ b/lib/Net.Http/src/VNLib.Net.Http.csproj
@@ -4,20 +4,18 @@
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>VNLib.Net.Http</RootNamespace>
<AssemblyName>VNLib.Net.Http</AssemblyName>
- <PackageId>VNLib.Net.Http</PackageId>
<Version>1.0.1.5</Version>
<NeutralLanguage>en-US</NeutralLanguage>
<Nullable>enable</Nullable>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<AnalysisLevel>latest-all</AnalysisLevel>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
</PropertyGroup>
<PropertyGroup>
+ <PackageId>VNLib.Net.Http</PackageId>
<Authors>Vaughn Nugent</Authors>
- <Company>$(Authors)</Company>
+ <Company>Vaughn Nugent</Company>
<Product>VNLib HTTP Library</Product>
<Description>
Provides a high performance HTTP 0.9-1.1 application processing layer for handling transport *agnostic connections and asynchronous event support for applications serving HTTP
@@ -25,7 +23,8 @@
outside of the VNLib ecosystem are required. The VNLib.Plugins and VNLib.Plugins.Essentials libraries are highly recommended for serving web content.
</Description>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources</PackageProjectUrl>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Core</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core/tree/main/lib/Net.Http</RepositoryUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
@@ -55,4 +54,11 @@
<ProjectReference Include="..\..\Utils\src\VNLib.Utils.csproj" />
</ItemGroup>
+ <ItemGroup>
+ <None Include="..\README.md">
+ <Pack>True</Pack>
+ <PackagePath>\</PackagePath>
+ </None>
+ </ItemGroup>
+
</Project>
diff --git a/lib/Net.Messaging.FBM/src/Client/FBMClientConfig.cs b/lib/Net.Messaging.FBM/src/Client/FBMClientConfig.cs
index c6082f0..77278f1 100644
--- a/lib/Net.Messaging.FBM/src/Client/FBMClientConfig.cs
+++ b/lib/Net.Messaging.FBM/src/Client/FBMClientConfig.cs
@@ -57,7 +57,7 @@ namespace VNLib.Net.Messaging.FBM.Client
/// </summary>
public readonly int MaxMessageSize { get; init; }
/// <summary>
- /// The heap to allocate interal (and message) buffers from
+ /// The heap to allocate internal (and message) buffers from
/// </summary>
public readonly IUnmangedHeap BufferHeap { get; init; }
/// <summary>
diff --git a/lib/Net.Messaging.FBM/src/VNLib.Net.Messaging.FBM.csproj b/lib/Net.Messaging.FBM/src/VNLib.Net.Messaging.FBM.csproj
index 7796425..db51bc4 100644
--- a/lib/Net.Messaging.FBM/src/VNLib.Net.Messaging.FBM.csproj
+++ b/lib/Net.Messaging.FBM/src/VNLib.Net.Messaging.FBM.csproj
@@ -2,19 +2,27 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
- <Version>1.0.1.1</Version>
- <Nullable>enable</Nullable>
+ <RootNamespace>VNLib.Net.Messaging.FBM</RootNamespace>
+ <AssemblyName>VNLib.Net.Messaging.FBM</AssemblyName>
+ <Version>1.0.1.1</Version>
+ <Nullable>enable</Nullable>
<AnalysisLevel>latest-all</AnalysisLevel>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
</PropertyGroup>
<PropertyGroup>
+ <PackageId>VNLib.Net.Messaging.FBM</PackageId>
<Authors>Vaughn Nugent</Authors>
+ <Company>Vaughn Nugent</Company>
+ <Description>
+ Fixed Buffer Messaging protocol class library. Implements a high-performance asynchronous
+ request/response messaging architecture build on top of HTTP websockets. Provides client
+ and server data structures.
+ </Description>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources/software</PackageProjectUrl>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Core</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core/tree/main/lib/Net.Messaging.FBM</RepositoryUrl>
</PropertyGroup>
<ItemGroup>
@@ -34,4 +42,11 @@
<ProjectReference Include="..\..\Utils\src\VNLib.Utils.csproj" />
</ItemGroup>
+ <ItemGroup>
+ <None Include="..\README.md">
+ <Pack>True</Pack>
+ <PackagePath>\</PackagePath>
+ </None>
+ </ItemGroup>
+
</Project>
diff --git a/lib/Net.Rest.Client/src/VNLib.Net.Rest.Client.csproj b/lib/Net.Rest.Client/src/VNLib.Net.Rest.Client.csproj
index f4d5188..a9cc2d3 100644
--- a/lib/Net.Rest.Client/src/VNLib.Net.Rest.Client.csproj
+++ b/lib/Net.Rest.Client/src/VNLib.Net.Rest.Client.csproj
@@ -7,16 +7,22 @@
<Version>1.0.1.1</Version>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<AnalysisLevel>latest-all</AnalysisLevel>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
</PropertyGroup>
<PropertyGroup>
+ <PackageId>VNLib.Net.Rest.Client</PackageId>
+ <Company>Vaughn Nugent</Company>
<Authors>Vaughn Nugent</Authors>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
- <Description>An Oauth2 rest client connection pool for OAuth2 authenticated services</Description>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources</PackageProjectUrl>
+ <Description>
+ Provides a RestClient connection pool using the Utils.ObjectRental
+ framework for reusing RestClients with a common configuration to execute
+ RestRequests against. This library also implements an OAuth2 authenticator
+ for the RestSharp IAuthenticator using the client credentials method.
+ </Description>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/modules/VNLib.Core</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core/tree/main/lib/Net.Rest.Client</RepositoryUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -47,4 +53,11 @@
<Folder Include="Exceptions\" />
</ItemGroup>
+ <ItemGroup>
+ <None Include="..\README.md">
+ <Pack>True</Pack>
+ <PackagePath>\</PackagePath>
+ </None>
+ </ItemGroup>
+
</Project>
diff --git a/lib/Net.Transport.SimpleTCP/src/VNLib.Net.Transport.SimpleTCP.csproj b/lib/Net.Transport.SimpleTCP/src/VNLib.Net.Transport.SimpleTCP.csproj
index 9ac7f2e..a5cdeea 100644
--- a/lib/Net.Transport.SimpleTCP/src/VNLib.Net.Transport.SimpleTCP.csproj
+++ b/lib/Net.Transport.SimpleTCP/src/VNLib.Net.Transport.SimpleTCP.csproj
@@ -8,20 +8,20 @@
<Version>1.0.1.4</Version>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<AnalysisLevel>latest-all</AnalysisLevel>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
</PropertyGroup>
<PropertyGroup>
<Product>VNLib Simple Transport Library</Product>
<Description>
- Provides a library for single process asynchronous, event driven, TCP socket listening and supporting structures to implement
- simple high performance TCP servers with or without TLS security.
+ Provides a library for single process asynchronous, event driven, TCP socket listening and supporting
+ structures to implement simple high performance TCP servers with or without TLS security.
</Description>
<Authors>Vaughn Nugent</Authors>
+ <Company>Vaughn Nugent</Company>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources</PackageProjectUrl>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Core</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core/tree/main/lib/Net.Transport.SimpleTCP</RepositoryUrl>
</PropertyGroup>
<ItemGroup>
@@ -40,4 +40,11 @@
<ProjectReference Include="..\..\Utils\src\VNLib.Utils.csproj" />
</ItemGroup>
+ <ItemGroup>
+ <None Include="..\README.md">
+ <Pack>True</Pack>
+ <PackagePath>\</PackagePath>
+ </None>
+ </ItemGroup>
+
</Project>
diff --git a/lib/Plugins.Essentials.ServiceStack/src/VNLib.Plugins.Essentials.ServiceStack.csproj b/lib/Plugins.Essentials.ServiceStack/src/VNLib.Plugins.Essentials.ServiceStack.csproj
index 6337202..4918c49 100644
--- a/lib/Plugins.Essentials.ServiceStack/src/VNLib.Plugins.Essentials.ServiceStack.csproj
+++ b/lib/Plugins.Essentials.ServiceStack/src/VNLib.Plugins.Essentials.ServiceStack.csproj
@@ -12,15 +12,20 @@
<PackageReadmeFile>README.md</PackageReadmeFile>
<AnalysisLevel>latest-all</AnalysisLevel>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
</PropertyGroup>
<PropertyGroup>
<Authors>Vaughn Nugent</Authors>
+ <Company>Vaughn Nugent</Company>
+ <PackageId>VNLib.Plugins.Essentials.ServiceStack</PackageId>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources</PackageProjectUrl>
+ <Description>
+ Provides data structures for building a dynamic HTTP servicing stack with runtime plugin loading,
+ dynamic endpoint routing, middleware* configuration, and multi-server managment.
+ </Description>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Core</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core/tree/main/lib/Plugins.Essentials.ServiceStack</RepositoryUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
diff --git a/lib/Plugins.Essentials/src/EventProcessor.cs b/lib/Plugins.Essentials/src/EventProcessor.cs
index 4f51907..d34cf95 100644
--- a/lib/Plugins.Essentials/src/EventProcessor.cs
+++ b/lib/Plugins.Essentials/src/EventProcessor.cs
@@ -264,7 +264,7 @@ namespace VNLib.Plugins.Essentials
}
/// <summary>
- /// Removes the specified endpoint from the virtual store and oauthendpoints if eneabled and found
+ /// Removes the specified endpoint from the virtual endpoint store
/// </summary>
/// <param name="eps">A collection of endpoints to remove from the table</param>
public void RemoveEndpoint(params IEndpoint[] eps)
@@ -305,7 +305,8 @@ namespace VNLib.Plugins.Essentials
{
_ = newTable.Remove(eps);
}
- //Store the new table ony if the endpoint existed
+
+ //Store the new table
_ = Interlocked.Exchange(ref VirtualEndpoints, newTable);
}
}
@@ -320,12 +321,14 @@ namespace VNLib.Plugins.Essentials
//Set ambient processor context
_currentProcessor.Value = this;
+
//Start cancellation token
CancellationTokenSource timeout = new(Options.ExecutionTimeout);
+
try
{
//Session handle, default to the shared empty session
- SessionHandle sessionHandle = default;
+ SessionHandle sessionHandle = SessionHandle.Empty;
//If sessions are set, get a session for the current connection
if (_sessions != null)
@@ -343,8 +346,10 @@ namespace VNLib.Plugins.Essentials
{
//Setup entity
HttpEntity entity = new(httpEvent, this, in sessionHandle, timeout.Token);
+
//Pre-process entity
FileProcessArgs preProc = await PreProcessEntityAsync(entity);
+
//If preprocess returned a value, exit
if (preProc != FileProcessArgs.Continue)
{
@@ -356,6 +361,7 @@ namespace VNLib.Plugins.Essentials
{
//Process a virtual file
FileProcessArgs virtualArgs = await ProcessVirtualAsync(entity);
+
//If the entity was processed, exit
if (virtualArgs != FileProcessArgs.Continue)
{
@@ -363,14 +369,17 @@ namespace VNLib.Plugins.Essentials
return;
}
}
+
//If no virtual processor handled the ws request, deny it
if (entity.Server.IsWebSocketRequest)
{
ProcessFile(httpEvent, in FileProcessArgs.Deny);
return;
}
+
//Finally process as file
FileProcessArgs args = await RouteFileAsync(entity);
+
//Finally process the file
ProcessFile(httpEvent, in args);
}
diff --git a/lib/Plugins.Essentials/src/Sessions/SessionBase.cs b/lib/Plugins.Essentials/src/Sessions/SessionBase.cs
index d386b8b..c8cab0d 100644
--- a/lib/Plugins.Essentials/src/Sessions/SessionBase.cs
+++ b/lib/Plugins.Essentials/src/Sessions/SessionBase.cs
@@ -113,7 +113,7 @@ namespace VNLib.Plugins.Essentials.Sessions
public virtual ulong Privilages
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- get => Convert.ToUInt64(this[PRIV_ENTRY], 16);
+ get => string.IsNullOrWhiteSpace(this[PRIV_ENTRY]) ? 0 : Convert.ToUInt64(this[PRIV_ENTRY], 16);
//Store in hexadecimal to conserve space
[MethodImpl(MethodImplOptions.AggressiveInlining)]
set => this[PRIV_ENTRY] = value.ToString("X");
diff --git a/lib/Plugins.Essentials/src/Sessions/SessionInfo.cs b/lib/Plugins.Essentials/src/Sessions/SessionInfo.cs
index fa7f8b7..816fa94 100644
--- a/lib/Plugins.Essentials/src/Sessions/SessionInfo.cs
+++ b/lib/Plugins.Essentials/src/Sessions/SessionInfo.cs
@@ -49,6 +49,10 @@ namespace VNLib.Plugins.Essentials.Sessions
/// When attached to a connection, provides persistant session storage and inforamtion based
/// on a connection.
/// </summary>
+ /// <remarks>
+ /// This structure should not be stored and should not be accessed when the parent http entity
+ /// has been closed.
+ /// </remarks>
public readonly struct SessionInfo : IObjectStorage, IEquatable<SessionInfo>
{
/// <summary>
@@ -58,10 +62,15 @@ namespace VNLib.Plugins.Essentials.Sessions
public readonly bool IsSet;
private readonly ISession UserSession;
+
/// <summary>
/// Key that identifies the current session. (Identical to cookie::sessionid)
/// </summary>
- public readonly string SessionID;
+ public readonly string SessionID
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get => UserSession.SessionID;
+ }
/// <summary>
/// Session stored User-Agent
/// </summary>
@@ -85,17 +94,11 @@ namespace VNLib.Plugins.Essentials.Sessions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void RegenID() => UserSession.RegenID();
///<inheritdoc/>
- public T GetObject<T>(string key)
- {
- //Attempt to deserialze the object, or return default if it is empty
- return this[key].AsJsonObject<T>(SR_OPTIONS);
- }
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public T GetObject<T>(string key) => this[key].AsJsonObject<T>(SR_OPTIONS);
///<inheritdoc/>
- public void SetObject<T>(string key, T obj)
- {
- //Serialize and store the object, or set null (remove) if the object is null
- this[key] = obj?.ToJsonString(SR_OPTIONS);
- }
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void SetObject<T>(string key, T obj) => this[key] = obj?.ToJsonString(SR_OPTIONS);
/// <summary>
/// Was the original session cross origin?
@@ -161,7 +164,11 @@ namespace VNLib.Plugins.Essentials.Sessions
/// <summary>
/// The IP address belonging to the client
/// </summary>
- public readonly IPAddress UserIP;
+ public readonly IPAddress UserIP
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get => UserSession.UserIP;
+ }
/// <summary>
/// Was the session Initialy established on a secure connection?
/// </summary>
@@ -169,7 +176,11 @@ namespace VNLib.Plugins.Essentials.Sessions
/// <summary>
/// A value specifying the type of the backing session
/// </summary>
- public readonly SessionType SessionType => UserSession.SessionType;
+ public readonly SessionType SessionType
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get => UserSession.SessionType;
+ }
/// <summary>
/// Accesses the session's general storage
@@ -189,9 +200,7 @@ namespace VNLib.Plugins.Essentials.Sessions
UserSession = session;
//Calculate and store
IsNew = session.IsNew;
- SessionID = session.SessionID;
Created = session.Created;
- UserIP = session.UserIP;
//Ip match
IPMatch = trueIp.Equals(session.UserIP);
//If the session is new, we can store intial security variables
diff --git a/lib/Plugins.Essentials/src/VNLib.Plugins.Essentials.csproj b/lib/Plugins.Essentials/src/VNLib.Plugins.Essentials.csproj
index 6901401..1fa6264 100644
--- a/lib/Plugins.Essentials/src/VNLib.Plugins.Essentials.csproj
+++ b/lib/Plugins.Essentials/src/VNLib.Plugins.Essentials.csproj
@@ -4,23 +4,26 @@
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>VNLib.Plugins.Essentials</RootNamespace>
<AssemblyName>VNLib.Plugins.Essentials</AssemblyName>
-
<Version>1.0.1.3</Version>
<AnalysisLevel>latest-all</AnalysisLevel>
<EnableNETAnalyzers>True</EnableNETAnalyzers>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
</PropertyGroup>
<PropertyGroup>
<Authors>Vaughn Nugent</Authors>
+ <Company>Vaughn NUgent</Company>
+ <PackageId>VNLib.Plugins.Essentials</PackageId>
<Product>VNLib Essentials Plugin Library</Product>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
- <Description>Provides essential web, user, storage, and database interaction features for use with web applications</Description>
+ <Description>
+ Provides essential web, sessions, users abstractions for building extensable web applications
+ with satefull sessions, user based intraction with login and account security extensions.
+ </Description>
<PackageProjectUrl>https://www.vaughnnugent.com/resources/software</PackageProjectUrl>
<PackageTags>VNLib, Plugins, VNLib.Plugins.Essentials, Essentials, Essential Plugins, HTTP Essentials, OAuth2</PackageTags>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core</RepositoryUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -42,6 +45,13 @@
</ItemGroup>
<ItemGroup>
+ <None Include="..\README.md">
+ <Pack>True</Pack>
+ <PackagePath>\</PackagePath>
+ </None>
+ </ItemGroup>
+
+ <ItemGroup>
<ProjectReference Include="..\..\Hashing.Portable\src\VNLib.Hashing.Portable.csproj" />
<ProjectReference Include="..\..\Net.Http\src\VNLib.Net.Http.csproj" />
<ProjectReference Include="..\..\Plugins\src\VNLib.Plugins.csproj" />
diff --git a/lib/Plugins.PluginBase/src/VNLib.Plugins.PluginBase.csproj b/lib/Plugins.PluginBase/src/VNLib.Plugins.PluginBase.csproj
index 7b24f85..a3be9bf 100644
--- a/lib/Plugins.PluginBase/src/VNLib.Plugins.PluginBase.csproj
+++ b/lib/Plugins.PluginBase/src/VNLib.Plugins.PluginBase.csproj
@@ -3,21 +3,24 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>VNLib.Plugins</RootNamespace>
- <PackageId>VNLib.Plugins.PluginBase</PackageId>
<AssemblyName>VNLib.Plugins.PluginBase</AssemblyName>
<Version>1.0.1.2</Version>
<AnalysisLevel>latest-all</AnalysisLevel>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup>
<Authors>Vaughn Nugent</Authors>
+ <Company>Vaughn Nugent</Company>
+ <PackageId>VNLib.Plugins.PluginBase</PackageId>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources</PackageProjectUrl>
- <Description>A base class for VNLib.Plugins that provides all supported loading functionalities, with built-in logging, loading, task-managment and endpoint routing.</Description>
+ <Description>
+ A base class for VNLib.Plugins that provides all supported loading functionalities,
+ with built-in logging, loading, task-managment and endpoint routing.
+ </Description>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Core</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core/tree/main/lib/Plugins.PluginBase</RepositoryUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -49,5 +52,12 @@
<ProjectReference Include="..\..\Utils\src\VNLib.Utils.csproj" />
</ItemGroup>
+ <ItemGroup>
+ <None Include="..\README.md">
+ <Pack>True</Pack>
+ <PackagePath>\</PackagePath>
+ </None>
+ </ItemGroup>
+
</Project>
diff --git a/lib/Plugins.Runtime/src/VNLib.Plugins.Runtime.csproj b/lib/Plugins.Runtime/src/VNLib.Plugins.Runtime.csproj
index 5306727..37a9e74 100644
--- a/lib/Plugins.Runtime/src/VNLib.Plugins.Runtime.csproj
+++ b/lib/Plugins.Runtime/src/VNLib.Plugins.Runtime.csproj
@@ -6,8 +6,6 @@
<RootNamespace>VNLib.Plugins.Runtime</RootNamespace>
<AssemblyName>VNLib.Plugins.Runtime</AssemblyName>
<Version>1.0.1.1</Version>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<AnalysisLevel>latest-all</AnalysisLevel>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
@@ -15,12 +13,15 @@
<PropertyGroup>
<Authors>Vaughn Nugent</Authors>
+ <Company>Vaughn Nugent</Company>
+ <PackageId>VNLib.Plugins.Runtime</PackageId>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
<Description>
A runtime plugin loader for .NET. Allows runtime loading and tracking of .NET assemblies
that export the VNLib.Plugin.IPlugin interface.
</Description>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources</PackageProjectUrl>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Core</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core/tree/main/lib/Plugins.Runtime</RepositoryUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -47,4 +48,11 @@
<ProjectReference Include="..\..\Utils\src\VNLib.Utils.csproj" />
</ItemGroup>
+ <ItemGroup>
+ <None Include="..\README.md">
+ <Pack>True</Pack>
+ <PackagePath>\</PackagePath>
+ </None>
+ </ItemGroup>
+
</Project>
diff --git a/lib/Plugins/src/VNLib.Plugins.csproj b/lib/Plugins/src/VNLib.Plugins.csproj
index e558e95..062e7a4 100644
--- a/lib/Plugins/src/VNLib.Plugins.csproj
+++ b/lib/Plugins/src/VNLib.Plugins.csproj
@@ -2,22 +2,19 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
- <RootNamespace>VNLib.Plugins</RootNamespace>
-
- <Version>1.0.1.3</Version>
-
+ <RootNamespace>VNLib.Plugins</RootNamespace>
<AssemblyName>VNLib.Plugins</AssemblyName>
-
+ <Version>1.0.1.3</Version>
<Nullable>enable</Nullable>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<AnalysisLevel>latest-all</AnalysisLevel>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
</PropertyGroup>
<PropertyGroup>
<Authors>Vaughn Nugent</Authors>
+ <Company>Vaughn Nugent</Company>
+ <PackageId>VNLib.Plugins</PackageId>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
<PackageTags>Plugins, VNLIb, VNLib Plugins, Plugin Base</PackageTags>
<Product>VNLib Plugins Interface Assembly</Product>
@@ -26,7 +23,8 @@
plugins and asynchronus web endpoint processing, compatible
with the VNLib.Plugins.Runtime loader library.
</Description>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources</PackageProjectUrl>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Core</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core/tree/main/lib/Plugins</RepositoryUrl>
</PropertyGroup>
<ItemGroup>
@@ -40,4 +38,11 @@
</PackageReference>
</ItemGroup>
+ <ItemGroup>
+ <None Include="..\README.md">
+ <Pack>True</Pack>
+ <PackagePath>\</PackagePath>
+ </None>
+ </ItemGroup>
+
</Project>
diff --git a/lib/Utils/README.md b/lib/Utils/README.md
index a3be003..60a65c5 100644
--- a/lib/Utils/README.md
+++ b/lib/Utils/README.md
@@ -1,6 +1,6 @@
# VNLib.Utils
-A .NET/C# library for common .NET operation optimizations.
+A .NET 6 /C# library for common .NET operation optimizations.
namespaces
- VNLib.Utils.Async - Provides classes for asynchronous access synchronization and some asynchronous collections
@@ -9,6 +9,9 @@ namespaces
- VNLib.Utils.Logging - Logging interfaces for zero dependency logging
- VNLib.Utils.Memory - Utilities for safely accessing unmanaged memory and CLR memory
- VNLib.Utils.Memory.Caching - Data structures for managed object, data caching, and interfaces for cache-able objects
+- VNLib.Utils.Memory.Diagnostics - Data structures for assisting in unmanaged memory diagnostics, and library wide memory diagnostics enablement
+- VNLib.Utils.Native - Utilities for safely (dynamically) loading and accessing platform native libraries.
+- VNLib.Utils.Resources - Abstractions and base data structures for holding and accessing resources.
#### Builds
Debug build w/ symbols & xml docs, release builds, NuGet packages, and individually packaged source code are available on my [website](https://www.vaughnnugent.com/resources/software). All tar-gzip (.tgz) files will have an associated .sha384 appended checksum of the desired download file.
@@ -33,7 +36,7 @@ The Memory.Diagnostics namespace was added to provide a wrapper for tracking IUn
## Usage
A usage breakdown would be far to lengthy for this library, and instead I intend to keep valid and comprehensive documentation in Visual Studio XML documentation files included in this project's src directory.
-This library is a utilities library and therefor may be directly included in your application or libraries,
+This library is a utilities library and therefor may be directly included in your application or libraries.
### License
diff --git a/lib/Utils/src/VNLib.Utils.csproj b/lib/Utils/src/VNLib.Utils.csproj
index 907ee1e..36fd1ca 100644
--- a/lib/Utils/src/VNLib.Utils.csproj
+++ b/lib/Utils/src/VNLib.Utils.csproj
@@ -3,30 +3,41 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>VNLib.Utils</RootNamespace>
-
<AssemblyName>VNLib.Utils</AssemblyName>
<Version>1.0.1.10</Version>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Nullable>enable</Nullable>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<AnalysisLevel>latest-all</AnalysisLevel>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>\\vaughnnugent.com\Internal\Folder Redirection\vman\Documents\Programming\Software\StrongNameingKey.snk</AssemblyOriginatorKeyFile>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
</PropertyGroup>
<PropertyGroup>
+ <PackageId>VNLib.Utils</PackageId>
<Authors>Vaughn Nugent</Authors>
+ <Company>Vaughn Nugent</Company>
<Product>VNLib Utilities Library</Product>
<Copyright>Copyright © 2023 Vaughn Nugent</Copyright>
- <PackageProjectUrl>https://www.vaughnnugent.com/resources</PackageProjectUrl>
- <Description>Base utilities library, structs, classes</Description>
+ <Description>
+ .NET/6.0 Utilities library for high-performance common operations. Utilities and abstractions for building and
+ diagnosing native memory implementations. Dyanmic native library loading, IO, extensions, data encoding, resource
+ access, and asynchronous cooperation primitives.
+ </Description>
+ <PackageProjectUrl>https://www.vaughnnugent.com/resources/software/modules/VNLib.Core</PackageProjectUrl>
+ <RepositoryUrl>https://github.com/VnUgE/VNLib.Core/tree/main/lib/Utils</RepositoryUrl>
</PropertyGroup>
<ItemGroup>
<None Include="..\.editorconfig" Link=".editorconfig" />
</ItemGroup>
+ <ItemGroup>
+ <None Include="..\README.md">
+ <Pack>True</Pack>
+ <PackagePath>\</PackagePath>
+ </None>
+ </ItemGroup>
+
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
</PropertyGroup>
diff --git a/lib/WinRpMalloc/src/package.json b/lib/WinRpMalloc/src/package.json
new file mode 100644
index 0000000..d55eeae
--- /dev/null
+++ b/lib/WinRpMalloc/src/package.json
@@ -0,0 +1,9 @@
+{
+ "Description": "A project to maintain a Windows dll for RpMalloc by Mattias Jansson with some basic defaults for .NET loading",
+ "Authors": "Vaughn Nugent",
+ "Copyright": "Copyright &copy; 2023 Vaughn Nugent",
+ "Version": "0.1.1",
+ "Company": "Vaughn Nugent",
+ "Product": "WinRpMalloc",
+ "RepositoryUrl": "https://github.com/VnUgE/VNLib.Core/tree/main/lib/WinRpMalloc"
+} \ No newline at end of file