Skip to content

OpenHark/HarkLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hark Library

Plan

Introduction

This is a set of .NET libraries for advanced use.

Disclaimer

No contributor is responsible or liable for illegal use of this library.

Documentation

Library Documentation
HarkLib.Parsers.Generic.dll Delimiter Regular Expression (drex)
HarkLib.Parsers.dll Document
HTML
XML
HarkLib.Security.dll AES
RSA
SecureConsole
SecurePassword
HarkLib.Core.dll FileCache
FileSettings
UIDManager
Exceptions
Extensions
HarkLib.Net.dll Resolver
GhostMail
WebResource

Project structure

HarkLib
|:: .make               - Solution builder folder
    |:: config.ini      - Configuration file for compilation
|:: .vscode             - Visual Studio Code folder (optional)
|:: out                 - Output folder
|:: src                 - Source code
    |:: Core            - C#
        |:: Exceptions
        |:: Extensions
    |:: Net             - C#
        |:: Exceptions
        |:: WebResource
    |:: Parsers         - F#
    |:: Parsers.Generic - C#
        |:: Exceptions
    |:: Security        - C#
        |:: Extensions
    |:: UnitTesting     - C# for some unit tests
        |:: Net
        |:: Parsers
            |:: Sequencers
        |:: Security

Because the C# language and the F# have their own strengths and weaknesses, I made the choice to combine both where I feel their are the better.

Compilation

You need to have installed csc.exe (C# compiler) and fsc.exe (F# compiler). You need to have both compilers accessible in you PATH environment variable.

If you are using Visual Studio Code, you just have to press Ctrl+Shift+B. It will run the command 'make'.

If you are not using Visual Studio Code, open a terminal on the root folder (where there is the file makefile) and run the following command : make or with full specification : make build.

If you want to clean the project, you can run make clean.

If you want to clean the project and compile just after, please run make clean build.

The .make folder contains the source code (C#) of the solution compiler. If needed, you can recompile it.

The compilation uses cache system which allows faster compilations. Indeed, if you edit a project, it will recompile only this one. This may result in some errors if you recompile a library while removing a method/class. The other programs will try to find this class or this method at JIT compilation time, producing a runtime error. To solve this kind of problem, just clean and rebuild the whole project.

In the file .make/config.ini, you can find the configuration of the compilation. This way, no need to recompile the compiler to change the references added in each sub project, the output file names, etc...

Usages

If you are using a compiler, you can load one or many of the libraries provided by this project by adding a reference while compiling.

If you use the command line, you can compile a C# program with :

csc ... /reference:HarkLib.Core.dll /reference:HarkLib.Net ...

For a F# program :

fsc ... --reference:HarkLib.Core.dll --reference:HarkLib.Net ...

For a C++/CLI program :

link ... HarkLib.Code.dll ...

If you are using Visual Studio, you can add it as a reference in you project. If you don't know how, you can follow this "tutorial".

If you want to use a library without referencing it, you can use the following way (here in C#) :

Assembly assembly = Assembly.Load(AssemblyName.GetAssemblyName("HarkLib.Security.dll"));

foreach(Type t in assembly.GetTypes())
    Console.WriteLine(t.Name);

Tasks

  • Core
    • Add doc comments
  • Parsers
    • Add XML permissive parsing
    • Add doc comments
    • Add XPath parsing
    • Add XPath parsing doc comments
  • Parsers.Generic
    • ByteSequencer : Create a better result parsing for or ({...|...})
    • ByteSequencer : Add exclude pattern
    • Clean the files
    • Test in real situations
    • Add doc comments
  • Security
    • Add RSA
    • Add "anti-forcing system" (slow generation)
    • Add doc comments
  • Net
    • Add web client
    • Add web server
    • Add doc comments
    • Add webdav server
    • Add ghost mail system
    • Add web directory browser
    • Add light web server for software interface
    • Add light webdav server for software interface
  • AI
    • Finish HTM CLA
    • Make a unit test for HTM CLA

License

GNU AGPLv3

[Can-Cannot-Must description] [Learn more]

About

This is a set of .NET libraries for advanced use.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published