Skip to content

Commit

Permalink
First Update
Browse files Browse the repository at this point in the history
  • Loading branch information
JeongHan-Bae committed Feb 27, 2024
1 parent 7ac099e commit 0221662
Show file tree
Hide file tree
Showing 13 changed files with 3,189 additions and 0 deletions.
24 changes: 24 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.24)
project(JoSon)

# Add your source files
set(SOURCE_FILES src/Doc.cpp src/Viso.cpp src/Joson.cpp)

# Create a dynamic library from the source files
add_library(JoSon SHARED ${SOURCE_FILES})

# Specify the include directories
target_include_directories(JoSon PUBLIC /include/JoSon)

set(DLL_DIR ${CMAKE_SOURCE_DIR}/lib)

set(DLL_FILES libJoSon.dll)

set(DEST_DIR ${CMAKE_BINARY_DIR})

foreach (DLL_FILE ${DLL_FILES})
add_custom_command(TARGET JoSon POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${DLL_DIR}/${DLL_FILE}"
"${DEST_DIR}")
endforeach ()
107 changes: 107 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# JoSon - Lightweight JSON Processing Library for C++

JoSon is a lightweight and user-friendly JSON processing library for C++,
designed with simplicity and ease of use in mind. It offers intuitive interfaces for creating,
manipulating, and visualizing structured data in JSON format.

## Project Structure

```markdown
JoSonLib
├── include
│ └── JoSon
│ ├── Joson.h
│ ├── Viso.h
│ └── Doc.h
├── src
│ ├── Joson.cpp
│ ├── Viso.cpp
│ └── Doc.cpp
├── lib
│ └── (DLL files)
├── CMakeLists.txt
├── README.md
└── docs
├── JoSon_API_Reference_Documentation.md
└── JoSon_Library_Documentation.md
```

The project structure organizes source code, libraries, and documentation under a cohesive hierarchy.

## Documentation

Detailed library documentation is available in two parts:

- **Library Overview**:

The JoSon library overview and usage instructions can be found in [JoSon_Library_Documentation.md](docs/JoSon_Library_Documentation.md).

- **API Reference**:

For detailed API documentation, refer to [JoSon_API_Reference_Documentation.md](docs/JoSon_API_Reference_Documentation.md).

## Security Policy

For information on reporting security vulnerabilities and our security policy, please refer to [SECURITY.md](SECURITY.md).

## Key Features

- **Pythonic Syntax**:

Simplifies JSON data manipulation tasks with an intuitive Pythonic writing style.

- **Extended Data Types**:

Supports various data types such as tuples, characters, and extended precision floating-point numbers.

- **ArrayList Implementation**:

Provides Last-In-First-Out (LIFO) behavior for efficient array manipulation.

- **Unordered Map for Maps**:

Uses unordered maps to ensure unique key-value associations.

- **Interconversion**:

Allows easy conversion between tuples and ArrayLists for flexible data manipulation.

- **Efficient Reading**:

Offers fast JSON file reading capabilities for complex data structures.

- **STL Integration**:

Seamlessly integrates with the C++ Standard Template Library (STL) for easy usage.

- **User-Friendly**:

Utilizes standard C++ types like std::string and std::ostream for enhanced user-friendliness.

- **Visualization Options**:

Provides options for progress bar display and colorful JSON printing.

- **Efficient Performance**:

Demonstrates impressive parsing speeds for handling large JSON files.

## About the Author

**JeongHan-Bae** is the mastermind behind the JoSon library.
With a passion for creating efficient and user-friendly solutions, JeongHan-Bae has dedicated countless hours to crafting JoSon, aiming to simplify JSON processing tasks for developers worldwide.

## About the Name "JoSon"

The name "JoSon" is a combination of "JoSeon" and "JSON." "JoSeon" represents Korea, reflecting the ethnic Korean heritage of the author, JeongHan-Bae.
By blending "JoSeon" with "JSON," the widely-used data interchange format, the name "JoSon" pays homage to both Korean culture and the JSON standard.

## License

This project is licensed under the [MIT License](LICENSE).
18 changes: 18 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Security Policy

## Supported Versions

| Version | Supported |
|---------|-----------|
| 1.0 ||

## Reporting a Vulnerability

If you discover a security vulnerability, please contact JeongHan-Bae on [GitHub](https://github.com/JeongHan-Bae) or via email at mastropseudo@gmail.com.

Please provide details about the vulnerability and refrain from posting it publicly. You can expect to receive an acknowledgment within 48 hours. We will work to confirm the vulnerability, determine its impact, and provide regular updates on its status.

If the vulnerability is accepted, we will prioritize addressing it in the next appropriate release. If declined, we will provide reasons for the decision.

Thank you for helping keep our project secure!

Loading

0 comments on commit 0221662

Please sign in to comment.